Wyświetlanie listy kontenerów obiektów blob za pomocą języka TypeScript
Po wyświetleniu listy kontenerów na koncie usługi Azure Storage z poziomu kodu można określić szereg opcji zarządzania sposobem zwracania wyników z usługi Azure Storage. W tym artykule przedstawiono sposób wyświetlania listy kontenerów przy użyciu biblioteki klienta usługi Azure Storage dla języka JavaScript.
Wymagania wstępne
- W przykładach w tym artykule założono, że masz już skonfigurowany projekt do pracy z biblioteką klienta usługi Azure Blob Storage dla języka JavaScript. Aby dowiedzieć się więcej o konfigurowaniu projektu, w tym instalacji pakietu, importowaniu modułów i tworzeniu autoryzowanego obiektu klienta do pracy z zasobami danych, zobacz Wprowadzenie do usługi Azure Blob Storage i TypeScript.
- Mechanizm autoryzacji musi mieć uprawnienia do wyświetlania listy kontenerów obiektów blob. Aby dowiedzieć się więcej, zobacz wskazówki dotyczące autoryzacji dla następującej operacji interfejsu API REST:
Informacje o opcjach listy kontenerów
Aby wyświetlić listę kontenerów na koncie magazynu, utwórz obiekt BlobServiceClient , a następnie wywołaj następującą metodę:
- BlobServiceClient.listContainers
Wyświetlanie listy kontenerów z opcjonalnym prefiksem
Domyślnie operacja wyświetlania listy zwraca maksymalnie 5000 wyników jednocześnie.
Obiekt BlobServiceClient.funkcja listContainers zwraca listę obiektów ContainerItem . Użyj containerItem.name, aby utworzyć obiekt ContainerClient w celu uzyskania bardziej kompletnego obiektu ContainerProperties .
// return up to 5000 containers
async function listContainers(
blobServiceClient: BlobServiceClient,
containerNamePrefix: string
): Promise<void> {
const options: ServiceListContainersOptions = {
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: ContainerClient =
blobServiceClient.getContainerClient(containerItem.name);
// ... do something with container
// containerClient.listBlobsFlat({ includeMetadata: true,
// includeSnapshots: false,
// includeTags: true,
// includeVersions: false,
// prefix: ''});
}
}
Wyświetlanie listy kontenerów z stronicowaniem
Aby zwrócić mniejszy zestaw wyników, podaj wartość niezerową dla rozmiaru strony wyników do zwrócenia.
Jeśli konto magazynu zawiera więcej niż 5000 kontenerów lub określono rozmiar strony, tak aby operacja wyświetlania listy zwróciła podzbiór kontenerów na koncie magazynu, usługa Azure Storage zwraca token kontynuacji z listą kontenerów. Token kontynuacji jest nieprzezroczystą wartością, której można użyć do pobrania następnego zestawu wyników z usługi Azure Storage.
W kodzie sprawdź wartość tokenu kontynuacji, aby określić, czy jest ona pusta. Gdy token kontynuacji jest pusty, zestaw wyników zostanie ukończony. Jeśli token kontynuacji nie jest pusty, wywołaj metodę listy ponownie, przekazując token kontynuacji, aby pobrać następny zestaw wyników, dopóki token kontynuacji nie będzie pusty.
async function listContainersWithPagingMarker(
blobServiceClient: BlobServiceClient
) {
// add prefix to filter list
const containerNamePrefix = '';
// page size
const maxPageSize = 2;
const options: ServiceListContainersOptions = {
includeDeleted: false,
includeMetadata: true,
includeSystem: true,
prefix: containerNamePrefix
};
let i = 1;
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
const 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}`);
}
}
}
Użyj parametru options do metody listContainers , aby filtrować wyniki za pomocą prefiksu.
Filtrowanie wyników za pomocą prefiksu
Aby filtrować listę kontenerów, określ ciąg dla właściwości prefiksu. Ciąg prefiksu może zawierać co najmniej jeden znak. Usługa Azure Storage zwraca następnie tylko kontenery, których nazwy zaczynają się od tego prefiksu.
async function listContainers(
blobServiceClient: BlobServiceClient,
containerNamePrefix: string
) {
const options: ServiceListContainersOptions = {
includeDeleted: false,
includeMetadata: true,
includeSystem: true,
// filter by prefix
prefix: containerNamePrefix
};
for await (const containerItem of blobServiceClient.listContainers(options)) {
// do something with containerItem
}
}
Uwzględnianie metadanych w wynikach
Aby zwrócić metadane kontenera z wynikami, określ wartość metadanych dla wyliczenia BlobContainerTraits. Usługa Azure Storage zawiera metadane z każdym zwróconym kontenerem, więc nie trzeba pobierać metadanych kontenera jako oddzielnej operacji.
async function listContainers(
blobServiceClient: BlobServiceClient,
containerNamePrefix: string
) {
const options: ServiceListContainersOptions = {
includeDeleted: false,
includeSystem: true,
prefix: containerNamePrefix,
// include metadata
includeMetadata: true,
};
for await (const containerItem of blobServiceClient.listContainers(options)) {
// do something with containerItem
}
}
Zasoby
Aby dowiedzieć się więcej na temat wyświetlania listy kontenerów przy użyciu biblioteki klienta usługi Azure Blob Storage dla języka JavaScript, zobacz następujące zasoby.
Operacje interfejsu API REST
Zestaw Azure SDK dla języka JavaScript zawiera biblioteki, które bazują na interfejsie API REST platformy Azure, co umożliwia interakcję z operacjami interfejsu API REST za pomocą znanych paradygmatów języka JavaScript. Metody biblioteki klienta do wyświetlania listy kontenerów używają następującej operacji interfejsu API REST:
- Wyświetlanie listy kontenerów (interfejs API REST)
Przykłady kodu
Zasoby biblioteki klienta
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla