如何在Azure的Blob存储中列出Blob而没有递归获取所有Blob

时间:2018-11-13 18:24:24

标签: node.js azure azure-storage

作为参考,这里有一些适用的代码:

const service = storage.createBlobService(connectionString);
service.listBlobsSegemented(containerName, null, (err, data) => {
  if (err) {
    throw new Error();
  }
  data.entries.forEach(blob => {
    console.log('blob', blob)
  })
})

问题在于data.entries的容器中包含每个lob。我的容器的结构如下所示:

  • file-1.csv
  • file-2.csv
  • archive / file-1-12341234123412.csv
  • archive / file-2-12341234123412.csv

我只能使用listBlobsSegmentedWithPrefix轻松获取/ archive中的内容,例如:

service.listBlobsSegmentedWithPrefix(containerName, 'archive', null, 
  (err, data) => {
    ...
  }
)

但是,我看不到只能在根级别获得blob的方法。

1 个答案:

答案 0 :(得分:1)

好吧,我很茫然,所以我只是随机尝试将定界符设置为'/'并且它起作用。太糟糕了,文档没有足够描述它的用法...

解决方案:

service.listBlobsSegmented(containerName, null, {delmiter: '/'}, (e, d) => {
  ....
})