Udostępnij za pośrednictwem


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

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ę:

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:

Przykłady kodu

Zasoby biblioteki klienta

Zobacz też