Получить список контейнеров azure по каталогам - PullRequest
0 голосов
/ 23 марта 2020

Я организую содержимое своего контейнера по каталогам

rep1/subrep1/subsubrep1'
rep2/subrep2/subsubrep2'

внутри каждого представителя. У меня есть файлы BLOB-объектов.

Я хочу получить список BLOB-объектов `rep1 / subrep1 / subsubrep1 '

контейнер с именем 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-объектов.

Я могу отфильтровать результат, но я найду, как получить указанную c вложенную папку blob

1 Ответ

1 голос
/ 23 марта 2020

Вместо использования listBlobsFlat используйте listBlobsByHierachy. Для параметра delimiter укажите пустую строку и укажите rep1/subrep1/subsubrep1 как prefix в параметре параметров.

Что-то вроде:

let iter = await containerClient.listBlobsByHierarchy("", { prefix: "rep1/subrep1/subsubrep1/" });
...