Aracılığıyla paylaş


Java 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 çeşitli seçenekler belirtebilirsiniz. Bu makalede Java için Azure Depolama istemci kitaplığını kullanarak kapsayıcıları listeleme adımları gösterilmektedir.

Önkoşullar

  • Bu makalede, Java için Azure Blob Depolama istemci kitaplığıyla çalışmak üzere ayarlanmış bir projeniz olduğu varsayılır. Paket yükleme, yönergeler ekleme import ve yetkili istemci nesnesi oluşturma dahil olmak üzere projenizi ayarlama hakkında bilgi edinmek için bkz. Azure Depolama ve Java ile Çalışmaya 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

Kodunuzdaki kapsayıcıları listelerken Azure Depolama'dan sonuçların nasıl döndürüleceğini yönetmek için seçenekler belirtebilirsiniz. Her sonuç kümesinde döndürülecek sonuç sayısını belirtebilir ve ardından sonraki kümeleri alabilirsiniz. Ayrıca sonuçları bir ön eke göre filtreleyebilir ve sonuçları içeren kapsayıcı meta verilerini döndürebilirsiniz. Bu seçenekler aşağıdaki bölümlerde açıklanmıştır.

Depolama hesabındaki kapsayıcıları listelemek için aşağıdaki yöntemi çağırın:

Bu yöntem BlobContainerItem türünde bir yinelenebilir döndürür. Kapsayıcılar ada göre sözcük temelli olarak sıralanır.

Kaç sonuç döndürülür yönetme

Varsayılan olarak, bir listeleme işlemi aynı anda en fazla 5000 sonuç döndürür. 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. Aşağıdaki yöntemi kullanarak bu değeri ayarlayabilirsiniz:

Bu makalede sunulan örnekler, sonuçları sayfalarda nasıl döndürebileceğinizi gösterir. Sayfalandırma kavramları hakkında daha fazla bilgi edinmek için bkz . Java için Azure SDK ile sayfalandırma.

Sonuçları ön ek ile filtreleme

Kapsayıcı listesini filtrelemek için parametresi için prefix 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. Aşağıdaki yöntemi kullanarak bu değeri ayarlayabilirsiniz:

Kapsayıcı meta verilerini dahil et

Sonuçlara kapsayıcı meta verilerini eklemek için bir BlobContainerListDetails örnek oluşturun ve aşağıdaki yönteme geçin true :

Ardından nesnesini aşağıdaki yönteme geçirin BlobContainerListDetails :

Silinen kapsayıcıları dahil et

Geçici olarak silinen kapsayıcıları sonuçlara eklemek için bir BlobContainerListDetails örnek oluşturun ve aşağıdaki yönteme geçin true :

Ardından nesnesini aşağıdaki yönteme geçirin BlobContainerListDetails :

Kod örnekleri

Aşağıdaki örnek kapsayıcıları listeler ve sonuçları belirtilen ön eke göre filtreler:

public void listContainers(BlobServiceClient blobServiceClient) {
    // Set a prefix to filter results based on a specified character or string
    ListBlobContainersOptions options = new ListBlobContainersOptions()
            .setPrefix("container-");

    System.out.println("List containers:");
    for (BlobContainerItem blobContainerItem : blobServiceClient.listBlobContainers(options, null)) {
        System.out.printf("Container name: %s%n", blobContainerItem.getName());
    }
}

Ayrıca, döndürülecek sonuç sayfasının boyutunu belirterek daha küçük bir sonuç kümesi de döndürebilirsiniz:

public void listContainersWithPaging(BlobServiceClient blobServiceClient) {
    // Set a prefix to filter results and specify a page limit
    ListBlobContainersOptions options = new ListBlobContainersOptions()
            .setMaxResultsPerPage(2)  // Low number for demonstration purposes
            .setPrefix("container-");

    int i = 0;
    Iterable<PagedResponse<BlobContainerItem>> blobContainerPages = blobServiceClient
            .listBlobContainers(options, null).iterableByPage();
    for (PagedResponse<BlobContainerItem> page : blobContainerPages) {
        System.out.printf("Page %d%n", ++i);
        page.getElements().forEach(container -> {
            System.out.printf("Name: %s%n", container.getName());
        });
    }
}

Kaynaklar

Java 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

Java için Azure SDK, Azure REST API'sinin üzerinde derlenmiş kitaplıklar içerir ve tanıdık Java 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.