Elencare i contenitori BLOB con JavaScript
Quando si elencano i contenitori BLOB in un account di Archiviazione di Azure tramite il codice, è possibile specificare numerose opzioni per gestire il modo in cui i risultati vengono restituiti da Archiviazione di Azure. Questo articolo illustra come elencare i contenitori usando la libreria client di Archiviazione di Azure per JavaScript.
Prerequisiti
- Gli esempi in questo articolo presuppongono che sia già stato configurato un progetto per l'uso con la libreria client di Archiviazione BLOB di Azure per JavaScript. Per informazioni sulla configurazione del progetto, incluse l'installazione del pacchetto, l'importazione di moduli e la creazione di un oggetto client autorizzato per l'uso con le risorse dati, consultare Introduzione ad Archiviazione BLOB di Azure e JavaScript.
- Il meccanismo di autorizzazione deve disporre delle autorizzazioni per elencare i contenitori BLOB. Per altre informazioni, vedere le linee guida per l'autorizzazione per l'operazione API REST seguente:
Informazioni sulle opzioni di elenco dei contenitori
Per elencare i contenitori nell'account di archiviazione, creare un oggetto BlobServiceClient e quindi chiamare il metodo seguente:
- BlobServiceClient.listContainers
Elencare i contenitori con un prefisso facoltativo
Per impostazione predefinita, un'operazione di elenco restituisce fino a 5.000 risultati alla volta.
Il metodo BlobServiceClient.listContainers restituisce un elenco di oggetti ContainerItem. Usare containerItem.name per creare un oggetto ContainerClient per ottenere un oggetto ContainerProperties più completo.
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
}
}
Elencare i contenitori con l'impaginazione
Per restituire un set di risultati più piccolo, specificare un valore diverso da zero per le dimensioni della pagina dei risultati da restituire.
Se l'account di archiviazione contiene più di 5000 contenitori o se è stato specificato un valore di dimensioni della pagina per fare in modo che l'operazione di elenco restituisca solo un subset dei contenitori nell'account di archiviazione, Archiviazione di Azure restituisce un token di continuazione con l'elenco di contenitori. Un token di continuazione è un valore opaco che è possibile usare per recuperare il set di risultati successivo da Archiviazione di Azure.
Nel codice, controllare il valore del token di continuazione per determinare se è vuoto. Se il token di continuazione è vuoto, il set di risultati è completo. Se il token di continuazione non è vuoto, chiamare di nuovo il metodo di elenco, passando il token di continuazione per recuperare il set di risultati successivo, fino a quando il token di continuazione non diventa vuoto.
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}`);
}
}
}
Usare il parametro options per il metodo listContainers per filtrare i risultati con un prefisso.
Filtrare i risultati con un prefisso
Per filtrare l'elenco dei contenitori, specificare una stringa per la proprietà prefix. La stringa di prefisso può includere uno o più caratteri. Archiviazione di Azure restituisce solo i contenitori i cui nomi iniziano con tale prefisso.
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
}
}
Includere i metadati nei risultati
Per restituire i metadati dei contenitori con i risultati, specificare il valore metadata per l'enumerazione BlobContainerTraits. Archiviazione di Azure include i metadati con ogni contenitore restituito, dunque non è necessario recuperarli con un'operazione separata.
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
}
}
Risorse
Per altre informazioni su come elencare i contenitori tramite la libreria client di Archiviazione BLOB di Azure per JavaScript, vedere le risorse seguenti.
Operazioni dell'API REST
Azure SDK per JavaScript contiene librerie basate sull'API REST di Azure che consentono di interagire con le operazioni dell'API REST tramite paradigmi noti di JavaScript. I metodi della libreria client per elencare i contenitori usano l'operazione API REST seguente:
- List Containers (API REST)
Esempi di codice
Risorse della libreria client
- Documentazione di riferimento della libreria client
- Codice sorgente della libreria client
- Pacchetto (npm)
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per