Azure Blob 存储从特定目录而不是容器获取文件列表

Posted

技术标签:

【中文标题】Azure Blob 存储从特定目录而不是容器获取文件列表【英文标题】:Azure Blob Storage get file list from specific directory not from container 【发布时间】:2021-10-10 12:10:21 【问题描述】:

我已经创建了从 Azure blob 容器中获取文件列表的代码。

const sharedKeyCredential = new StorageSharedKeyCredential(account, accountKey);

 const containerName = `newcontainer$new Date().getTime()`;
  const containerClient = new ContainerClient(
    `https://$account.blob.core.windows.net/$containerName`,
    sharedKeyCredential
  );


 console.log("Listing all blobs");
  i = 1;
  for await (const blob of containerClient.listBlobsFlat()) 
    console.log(`Blob $i++: $blob.name`);
  

以上代码返回所有文件的列表。 但在我的容器中,有两个文件夹,一个是 IN 文件夹,第二个是 OUT 文件夹。我只需要 IN 文件夹中的文件列表。

是否有任何函数可用于从特定目录获取列表?

【问题讨论】:

【参考方案1】:

只需在您的listBlobsFlat 方法中添加prefix 选项,您就可以仅列出IN 文件夹中的blob。比如:

for await (const blob of containerClient.listBlobsFlat(prefix: 'IN/')) 
    console.log(`Blob $i++: $blob.name`);

您可以在此处了解有关 Blob 列表选项的更多信息:https://docs.microsoft.com/en-us/javascript/api/@azure/storage-blob/containerlistblobsoptions?view=azure-node-latest

【讨论】:

以上是关于Azure Blob 存储从特定目录而不是容器获取文件列表的主要内容,如果未能解决你的问题,请参考以下文章

仅从 Azure 存储 [Azure-Blob][REST] 中的 Blob 列表获取特定元数据

Azure Blob 存储 - 在将新文件上传到 Blob 容器中的特定文件夹时设置警报

Azure SQL - 从 Azure 文件而不是 Blob 批量插入

Azure 存储:Blob:Python:获取指示符是不是存在 Blob

从 AzureDevops 存储库获取一些文件并将它们上传到 Azure Blob Store 的容器的有效方法

检查 Azure 存储中是不是存在 blob