Lista blobcontainrar med JavaScript
När du listar containrarna i ett Azure Storage-konto från koden kan du ange ett antal alternativ för att hantera hur resultatet returneras från Azure Storage. Den här artikeln visar hur du listar containrar med hjälp av Azure Storage-klientbiblioteket för JavaScript.
Förutsättningar
- Exemplen i den här artikeln förutsätter att du redan har ett projekt konfigurerat för att fungera med Azure Blob Storage-klientbiblioteket för JavaScript. Information om hur du konfigurerar projektet, inklusive paketinstallation, import av moduler och att skapa ett auktoriserat klientobjekt för att arbeta med dataresurser, finns i Kom igång med Azure Blob Storage och JavaScript.
- Auktoriseringsmekanismen måste ha behörighet att lista blobcontainrar. Mer information finns i auktoriseringsvägledningen för följande REST API-åtgärd:
Om alternativ för containerlistning
Om du vill visa containrar i ditt lagringskonto skapar du ett BlobServiceClient-objekt och anropar sedan följande metod:
- BlobServiceClient.listContainers
Lista containrar med valfritt prefix
Som standard returnerar en listningsåtgärd upp till 5 000 resultat åt gången.
BlobServiceClient.listContainers returnerar en lista över ContainerItem-objekt . Använd containerItem.name för att skapa en ContainerClient för att få ett mer komplett ContainerProperties-objekt .
async function listContainers(blobServiceClient, containerNamePrefix) {
const options = {
includeDeleted: false,
includeMetadata: true,
includeSystem: true,
prefix: containerNamePrefix
}
for await (const containerItem of blobServiceClient.listContainers(options)) {
// ContainerItem
console.log(`For-await list: ${containerItem.name}`);
// ContainerClient
const containerClient = blobServiceClient.getContainerClient(containerItem.name);
// ... do something with container
}
}
Visa en lista över containrar med växling
Om du vill returnera en mindre uppsättning resultat anger du ett icke-nollvärde för storleken på den resultatsida som ska returneras.
Om ditt lagringskonto innehåller mer än 5 000 containrar, eller om du har angett en sidstorlek så att liståtgärden returnerar en delmängd containrar i lagringskontot, returnerar Azure Storage en fortsättningstoken med listan över containrar. En fortsättningstoken är ett täckande värde som du kan använda för att hämta nästa uppsättning resultat från Azure Storage.
I koden kontrollerar du värdet för fortsättningstoken för att avgöra om den är tom. När fortsättningstoken är tom är resultatuppsättningen klar. Om fortsättningstoken inte är tom anropar du listningsmetoden igen och skickar in fortsättningstoken för att hämta nästa resultatuppsättning tills fortsättningstoken är tom.
async function listContainersWithPagingMarker(blobServiceClient) {
// add prefix to filter list
const containerNamePrefix = '';
// page size
const maxPageSize = 2;
const options = {
includeDeleted: false,
includeMetadata: true,
includeSystem: true,
prefix: containerNamePrefix
}
let i = 1;
let marker;
let iterator = blobServiceClient.listContainers(options).byPage({ maxPageSize });
let response = (await iterator.next()).value;
// Prints 2 container names
if (response.containerItems) {
for (const container of response.containerItems) {
console.log(`IteratorPaged: Container ${i++}: ${container.name}`);
}
}
// Gets next marker
marker = response.continuationToken;
// Passing next marker as continuationToken
iterator = blobServiceClient.listContainers().byPage({ continuationToken: marker, maxPageSize: maxPageSize * 2 });
response = (await iterator.next()).value;
// Print next 4 container names
if (response.containerItems) {
for (const container of response.containerItems) {
console.log(`Container ${i++}: ${container.name}`);
}
}
}
Använd alternativparametern till metoden listContainers för att filtrera resultat med ett prefix.
Filtrera resultat med ett prefix
Om du vill filtrera listan över containrar anger du en sträng för prefixegenskapen. Prefixsträngen kan innehålla ett eller flera tecken. Azure Storage returnerar sedan endast de containrar vars namn börjar med prefixet.
async function listContainers(blobServiceClient, containerNamePrefix) {
const options = {
includeDeleted: false,
includeMetadata: true,
includeSystem: true,
// filter with prefix
prefix: containerNamePrefix
}
for await (const containerItem of blobServiceClient.listContainers(options)) {
// do something with containerItem
}
}
Inkludera metadata i resultat
Om du vill returnera containermetadata med resultatet anger du metadatavärdet för BlobContainerTraits-uppräkningen. Azure Storage innehåller metadata med varje container som returneras, så du behöver inte hämta containermetadata som en separat åtgärd.
async function listContainers(blobServiceClient, containerNamePrefix) {
const options = {
includeDeleted: false,
includeSystem: true,
prefix: containerNamePrefix,
// include metadata
includeMetadata: true,
}
for await (const containerItem of blobServiceClient.listContainers(options)) {
// do something with containerItem
}
}
Resurser
Mer information om hur du listar containrar med hjälp av Azure Blob Storage-klientbiblioteket för JavaScript finns i följande resurser.
REST API-åtgärder
Azure SDK för JavaScript innehåller bibliotek som bygger på Azure REST API, så att du kan interagera med REST API-åtgärder via välbekanta JavaScript-paradigm. Klientbiblioteksmetoderna för att visa containrar använder följande REST API-åtgärd:
- Listcontainrar (REST API)