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:
- BlobServiceClient.listContainers
İ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:
- Liste Kapsayıcıları (REST API)
Kod örnekleri
İstemci kitaplığı kaynakları
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin