按目录获取 Azure 容器 Blob 列表
Get azure container blobs list by directory
我正在按目录组织我的容器内容
rep1/subrep1/subsubrep1'
rep2/subrep2/subsubrep2'
在每个代表中我都有 blob 文件。
我想检索“rep1/subrep1/subsubrep1”的 blob 列表
名为 tenants
的容器。
try {
const blobServiceClient = await BlobServiceClient.fromConnectionString(
process.env.AzureWebJobsStorage
);
const containerClient = await blobServiceClient.getContainerClient(
'tenants'
);
for await (const blob of containerClient.listBlobsFlat()) {
let blobClient = await containerClient.getBlobClient(blob.name);
let splitedString = blobClient.name.split('/')
filesList.push({
label: splitedString[splitedString.length].split(".wav")[0],
value: blobClient.url
});
}
} catch (err) {
console.log(err)
}
实际上,对于我的代码,我应该迭代所有 blob 文件。
我可以过滤结果,但我会找到如何获取特定子文件夹 blob
不使用 listBlobsFlat
,而是使用 listBlobsByHierachy
。对于 delimiter
参数,指定一个空字符串并在选项参数中将 rep1/subrep1/subsubrep1
指定为 prefix
。
类似于:
let iter = await containerClient.listBlobsByHierarchy("", { prefix: "rep1/subrep1/subsubrep1/" });
我正在按目录组织我的容器内容
rep1/subrep1/subsubrep1'
rep2/subrep2/subsubrep2'
在每个代表中我都有 blob 文件。
我想检索“rep1/subrep1/subsubrep1”的 blob 列表
名为 tenants
的容器。
try {
const blobServiceClient = await BlobServiceClient.fromConnectionString(
process.env.AzureWebJobsStorage
);
const containerClient = await blobServiceClient.getContainerClient(
'tenants'
);
for await (const blob of containerClient.listBlobsFlat()) {
let blobClient = await containerClient.getBlobClient(blob.name);
let splitedString = blobClient.name.split('/')
filesList.push({
label: splitedString[splitedString.length].split(".wav")[0],
value: blobClient.url
});
}
} catch (err) {
console.log(err)
}
实际上,对于我的代码,我应该迭代所有 blob 文件。
我可以过滤结果,但我会找到如何获取特定子文件夹 blob
不使用 listBlobsFlat
,而是使用 listBlobsByHierachy
。对于 delimiter
参数,指定一个空字符串并在选项参数中将 rep1/subrep1/subsubrep1
指定为 prefix
。
类似于:
let iter = await containerClient.listBlobsByHierarchy("", { prefix: "rep1/subrep1/subsubrep1/" });