Aracılığıyla paylaş


JavaScript ile blob kapsayıcılarını listeleme

Azure Depolama hesabındaki kapsayıcıları kodunuzdan listelediğinizde, azure Depolama sonuçların nasıl döndürüleceğini yönetmek için bir dizi seçenek belirtebilirsiniz. Bu makalede, JavaScript için Azure Depolama istemci kitaplığını kullanarak kapsayıcıların nasıl liste adımlarının yer aldığı gösterilmektedir.

Önkoşullar

  • Bu makaledeki örneklerde JavaScript için Azure Blob Depolama istemci kitaplığıyla çalışmak üzere ayarlanmış bir projeniz olduğu varsayılır. Paket yükleme, modülleri içeri aktarma ve veri kaynaklarıyla çalışmak üzere yetkili bir istemci nesnesi oluşturma gibi projenizi ayarlama hakkında bilgi edinmek için bkz. Azure Blob Depolama ve JavaScript'i kullanmaya başlama.
  • Yetkilendirme mekanizmasının blob kapsayıcılarını listeleme izinleri olmalıdır. Daha fazla bilgi edinmek için aşağıdaki REST API işlemi için yetkilendirme kılavuzuna bakın:

Kapsayıcı listeleme seçenekleri hakkında

Depolama hesabınızdaki kapsayıcıları listelemek için bir BlobServiceClient nesnesi oluşturun ve aşağıdaki yöntemi çağırın:

İsteğe bağlı ön eke sahip kapsayıcıları listeleme

Varsayılan olarak, bir listeleme işlemi aynı anda en fazla 5000 sonuç döndürür.

BlobServiceClient.listContainers, ContainerItem nesnelerinin listesini döndürür. Daha eksiksiz bir ContainerProperties nesnesi almak için bir ContainerClient oluşturmak için containerItem.name kullanın.

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 
  }
}

Disk belleği ile kapsayıcıları listeleme

Daha küçük bir sonuç kümesi döndürmek için, döndürülecek sonuç sayfasının boyutu için sıfır olmayan bir değer sağlayın.

Depolama hesabınızda 5000'den fazla kapsayıcı varsa veya listeleme işleminin depolama hesabında kapsayıcıların bir alt kümesini döndürmesi için bir sayfa boyutu belirttiyseniz Azure Depolama kapsayıcı listesini içeren bir devamlılık belirteci döndürür. Devamlılık belirteci, Azure Depolama'dan sonraki sonuç kümesini almak için kullanabileceğiniz opak bir değerdir.

Kodunuzda, devamlılık belirtecinin değerini denetleerek boş olup olmadığını belirleyin. Devamlılık belirteci boş olduğunda sonuç kümesi tamamlanır. Devamlılık belirteci boş değilse, devamlılık belirteci boş olana kadar sonraki sonuç kümesini almak için devamlılık belirtecini geçirerek listeleme yöntemini yeniden çağırın.

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

Sonuçları bir ön ek ile filtrelemek için listContainers yönteminin options parametresini kullanın.

Sonuçları ön ek ile filtreleme

Kapsayıcı listesini filtrelemek için ön ek özelliği için bir dize belirtin. Ön ek dizesi bir veya daha fazla karakter içerebilir. Azure Depolama, yalnızca adları bu ön ek ile başlayan kapsayıcıları döndürür.

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

  }
}

Sonuçlara meta verileri ekleme

Sonuçları içeren kapsayıcı meta verilerini döndürmek için BlobContainerTraits sabit listesi için meta veri değerini belirtin. Azure Depolama döndürülen her kapsayıcıyla meta veriler içerdiğinden kapsayıcı meta verilerini ayrı bir işlem olarak getirmeniz gerekmez.

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

  }
}

Kaynaklar

JavaScript için Azure Blob Depolama istemci kitaplığını kullanarak kapsayıcıları listeleme hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın.

REST API işlemleri

JavaScript için Azure SDK, Azure REST API'sinin üzerinde derlenmiş kitaplıklar içerir ve tanıdık JavaScript paradigmalarıyla REST API işlemleriyle etkileşim kurmanızı sağlar. Kapsayıcıları listelemek için istemci kitaplığı yöntemleri aşağıdaki REST API işlemini kullanır:

Kod örnekleri

İstemci kitaplığı kaynakları

Ayrıca bkz.