在容器中获取最后一个Azure Blob

时间:2011-04-07 11:01:48

标签: azure azure-storage generic-list azure-storage-blobs

我的容器中有以下名称的blob列表

例如。 ITEM1 ITEM2 项目3 item9 item10 item12 item45

我想得到第一个和最后一个blob,在本例中是item1和item45

然而,当我使用cloudblobclient.cloudblobdirectory.listblobs.last时,item9被归还给我,而不是我想要的。从列表中获取最后一项(45)的最佳方法是什么。

只能考虑遍历完整列表,然后对于每个项目,获取字符“item”之后的数字,并将该数字与之前的高或低进行比较。由于前4个字符是固定的,我将结合“item”和higherCnt:

for each blobitem in listblobs
  iCurrCnt = numeric(blobitem.uri.absolutepath.substring(4)) 
  if iCurrCnt > iHigherCnt then
  iHigherCnt = iCurrCnt 

因此blob是最后一个(item45):

strHighestCntFileName = "item" + iHigherCnt

有替代方法吗?当项目列表增长到数千时,对性能的担忧。我只对第一个和最后一个blob感兴趣。谢谢!

1 个答案:

答案 0 :(得分:1)

我认为有以下几种方法可以实现这个目标:

  • 获取容器中存在的所有blob的列表,然后获取所需的文件管理器blob。

  • 列出容器中存在的blob时使用blob前缀。因此,如果您对第一个和最后一个blob名称有所了解,那么您可以在blob前缀中使用它,这将返回匹配指定blob前缀的blob列表。

希望这有帮助。

此致 阿米特耆那教 www.cerebrata.com