Java ile blob kapsayıcılarını listeleme
Bir Azure Depolama hesabındaki kapsayıcıları kodunuzdan listelediğinizde, sonuçların Azure Depolama'dan 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
- Azure aboneliği - ücretsiz bir abonelik oluşturun
- Azure depolama hesabı - depolama hesabı oluşturma
- Java Development Kit (JDK) sürüm 8 veya üzeri (en iyi deneyim için sürüm 17'yi öneririz)
- Apache Maven bu örnekte proje yönetimi için kullanılır
Ortamınızı ayarlama
Mevcut bir projeniz yoksa, bu bölümde Java için Azure Blob Depolama istemci kitaplığıyla çalışmak üzere bir projenin nasıl ayarlanacağı gösterilir. Daha fazla bilgi için bkz. Azure Blob Depolama ve Java'yı kullanmaya başlama.
Bu makaledeki kod örnekleriyle çalışmak için projenizi ayarlamak için bu adımları izleyin.
Not
Bu makalede, örnek kodu derlemek ve çalıştırmak için Maven derleme aracı kullanılmaktadır. Gradle gibi diğer derleme araçları da Java için Azure SDK ile çalışır.
Paketleri yükleme
pom.xml
Dosyayı metin düzenleyicinizde açın. Bom dosyasını ekleyerek veya doğrudan bağımlılık ekleyerek paketleri yükleyin.
İçeri aktarma deyimleri ekleme
Aşağıdaki import
deyimlerini ekleyin:
import com.azure.core.http.rest.*;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
Yetkilendirme
Yetkilendirme mekanizması, blob kapsayıcılarını listelemek için gerekli izinlere sahip olmalıdır. Microsoft Entra Id ile yetkilendirme için (önerilir), Azure RBAC yerleşik rolü Depolama Blob Verileri Katkıda Bulunanı veya üzeri gerekir. Daha fazla bilgi edinmek için Bkz. Liste Kapsayıcıları (REST API) için yetkilendirme kılavuzu.
İstemci nesnesi oluşturma
Bir uygulamayı Blob Depolama'ya bağlamak için bir BlobServiceClient örneği oluşturun.
Aşağıdaki örnek kullanarak bir BlobServiceClient
nesne DefaultAzureCredential
oluşturmak için BlobServiceClientBuilder'ı kullanır ve gerekirse kapsayıcı ve blob istemcilerinin nasıl oluşturulacağını gösterir:
// Azure SDK client builders accept the credential as a parameter
// TODO: Replace <storage-account-name> with your actual storage account name
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.endpoint("https://<storage-account-name>.blob.core.windows.net/")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
// If needed, you can create a BlobContainerClient object from the BlobServiceClient
BlobContainerClient containerClient = blobServiceClient
.getBlobContainerClient("<container-name>");
// If needed, you can create a BlobClient object from the BlobContainerClient
BlobClient blobClient = containerClient
.getBlobClient("<blob-name>");
İstemci nesneleri oluşturma ve yönetme hakkında daha fazla bilgi edinmek için bkz . Veri kaynaklarıyla etkileşim kuran istemci nesneleri oluşturma ve yönetme.
Kapsayıcı listeleme seçenekleri hakkında
Kodunuzdaki kapsayıcıları listelerken, sonuçların Azure Depolama'dan 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 daha sonra 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.
Kod örnekleri
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:
- Liste Kapsayıcıları (REST API)
İstemci kitaplığı kaynakları
Ayrıca bkz.
İlgili içerik
- Bu makale, Java için Blob Depolama geliştirici kılavuzunun bir parçasıdır. Daha fazla bilgi edinmek için Java uygulamanızı derleme makalelerinde geliştirici kılavuzu makalelerinin tam listesine bakın.