Delen via


Blobcontainers weergeven met TypeScript

Wanneer u de containers in een Azure Storage-account uit uw code weergeeft, kunt u een aantal opties opgeven om te beheren hoe resultaten worden geretourneerd vanuit Azure Storage. In dit artikel wordt beschreven hoe u containers weergeeft met behulp van de Azure Storage-clientbibliotheek voor JavaScript.

Vereisten

  • In de voorbeelden in dit artikel wordt ervan uitgegaan dat u al een project hebt ingesteld voor gebruik met de Azure Blob Storage-clientbibliotheek voor JavaScript. Zie Aan de slag met Azure Blob Storage en TypeScript voor meer informatie over het instellen van uw project, inclusief pakketinstallatie, het importeren van modules en het maken van een geautoriseerd clientobject voor gebruik met gegevensbronnen.
  • Het autorisatiemechanisme moet machtigingen hebben om blobcontainers weer te geven. Zie de autorisatierichtlijnen voor de volgende REST API-bewerking voor meer informatie:

Over opties voor containervermelding

Als u containers in uw opslagaccount wilt weergeven, maakt u een BlobServiceClient-object en roept u de volgende methode aan:

Containers weergeven met optioneel voorvoegsel

Standaard retourneert een vermeldingsbewerking maximaal 5000 resultaten tegelijk.

De BlobServiceClient.listContainers retourneert een lijst met ContainerItem-objecten . Gebruik de containerItem.name om een ContainerClient te maken om een completer ContainerProperties-object te verkrijgen.

// 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: ''});
  }
}

Containers weergeven met paging

Als u een kleinere set resultaten wilt retourneren, geeft u een niet-nulwaarde op voor de grootte van de pagina met resultaten die u wilt retourneren.

Als uw opslagaccount meer dan 5000 containers bevat of als u een paginaformaat hebt opgegeven, zodat de vermeldingsbewerking een subset van containers in het opslagaccount retourneert, retourneert Azure Storage een vervolgtoken met de lijst met containers. Een vervolgtoken is een ondoorzichtige waarde die u kunt gebruiken om de volgende set resultaten op te halen uit Azure Storage.

Controleer in uw code de waarde van het vervolgtoken om te bepalen of het leeg is. Wanneer het vervolgtoken leeg is, is de set resultaten voltooid. Als het vervolgtoken niet leeg is, roept u de vermeldingsmethode opnieuw aan en geeft u het vervolgtoken door om de volgende set resultaten op te halen, totdat het vervolgtoken leeg is.

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}`);
    }
  }
}

Gebruik de parameter Opties voor de methode listContainers om resultaten te filteren met een voorvoegsel.

Resultaten filteren met een voorvoegsel

Als u de lijst met containers wilt filteren, geeft u een tekenreeks op voor de eigenschap voor het voorvoegsel . De tekenreeks voor het voorvoegsel kan een of meer tekens bevatten. Azure Storage retourneert vervolgens alleen de containers waarvan de namen beginnen met dat voorvoegsel.

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

  }
}

Metagegevens opnemen in resultaten

Als u containermetagegevens met de resultaten wilt retourneren, geeft u de metagegevenswaarde op voor de enum BlobContainerTraits. Azure Storage bevat metagegevens voor elke container die wordt geretourneerd, zodat u de containermetagegevens niet hoeft op te halen als een afzonderlijke bewerking.

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

  }
}

Resources

Zie de volgende resources voor meer informatie over het weergeven van containers met behulp van de Azure Blob Storage-clientbibliotheek voor JavaScript.

REST API-bewerkingen

De Azure SDK voor JavaScript bevat bibliotheken die zijn gebaseerd op de Azure REST API, zodat u kunt communiceren met REST API-bewerkingen via bekende JavaScript-paradigma's. De clientbibliotheekmethoden voor het weergeven van containers gebruiken de volgende REST API-bewerking:

Codevoorbeelden

Clientbibliotheekbronnen

Zie ook