Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede , Java için Azure Depolama istemci kitaplığını kullanarak blok blobu için erişim katmanını ayarlama veya değiştirme adımları gösterilmektedir.
Prerequisites
- 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.
Note
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 ifadeleri ekle
Aşağıdaki import deyimleri ekleyin:
import com.azure.core.util.polling.LongRunningOperationStatus;
import com.azure.core.util.polling.PollResponse;
import com.azure.core.util.polling.SyncPoller;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import com.azure.storage.blob.options.BlobBeginCopyOptions;
Authorization
Yetkilendirme mekanizması, blob erişim katmanını ayarlamak için gerekli izinlere sahip olmalıdır. Microsoft Entra ID ile yetkilendirme için (önerilir), Azure RBAC yerleşik rolü Depolama Blob Verileri Katılımcısı veya üzeri gerekir. Daha fazla bilgi edinmek için Bkz. Blob Katmanını Ayarlama 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, BlobServiceClientBuilder kullanılarak bir BlobServiceClient nesnesi oluşturulmasını, ve kapsayıcı ile 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.
Blok blobu erişim katmanları hakkında
Depolama gereksinimlerinin maliyetlerini yönetmek için verilerinizi ne sıklıkta erişildiğinden ve ne kadar süreyle saklanması gerektiğinden yola çıkarak düzenlemek yararlı olabilir. Azure depolama, blob verilerinizi nasıl kullanıldığına göre en uygun maliyetli şekilde depolayabileceğiniz farklı erişim katmanları sunar.
Blob verileri için erişim katmanları
Azure Depolama erişim katmanları şunlardır:
- Sık erişim katmanı - Sık erişilen veya değiştirilen verileri depolamak için iyileştirilmiş bir çevrimiçi katman. Sık erişim katmanı en yüksek depolama maliyetlerine, ancak en düşük erişim maliyetlerine sahiptir.
- Cool tier - Sıklıkla erişilmeyen veya değiştirilmesi düşük olan verilerin depolanması için optimize edilmiş bir çevrimiçi katman. Soğuk katmandaki veriler en az 30 gün boyunca depolanmalıdır. Seyrek erişim katmanı, sık erişim katmanına göre daha düşük depolama maliyetleri ve daha yüksek erişim maliyetleri sunar.
- Soğuk katman - Seyrek erişilen veya değiştirilen verileri depolamak için iyileştirilmiş çevrimiçi katman. Soğuk katmandaki veriler en az 90 gün boyunca depolanmalıdır. Soğuk katman, soğuk arşiv katmanına kıyasla daha düşük depolama maliyetlerine ve daha yüksek erişim maliyetlerine sahiptir.
- Arşiv katmanı - Seyrek erişilen ve esnek gecikme süresi gereksinimlerine sahip verileri saat sırasına göre depolamak için iyileştirilmiş çevrimdışı katman. Arşiv katmanındaki veriler en az 180 gün boyunca depolanmalıdır.
Erişim katmanları hakkında daha fazla bilgi edinmek için bkz. Blob verileri için erişim katmanları.
Blob Arşiv erişim katmanındayken çevrimdışı olduğu kabul edilir ve okunamaz veya değiştirilemez. Arşivlenmiş bir blobdaki verileri okumak veya değiştirmek için önce blobu çevrimiçi bir katmanda yeniden doldurmanız gerekir. Bir blobu Arşiv katmanından çevrimiçi katmana yeniden doldurma hakkında daha fazla bilgi edinmek için bkz. Arşiv katmanından blob yeniden doldurma.
Restrictions
Erişim katmanının ayarlanmasına yalnızca blok bloblarında izin verilir. Blok blobu erişim katmanını ayarlama kısıtlamaları hakkında daha fazla bilgi edinmek için bkz. Blob Katmanını Ayarlama (REST API).
Note
Erişim katmanını Java'yı kullanacak şekilde ayarlamak için Cold en düşük istemci kitaplığı sürümü olan 12.21.0 kullanmanız gerekir.
Karşıya yükleme sırasında bir blob'un erişim katmanını ayarlayın
BlobUploadFromFileOptions sınıfını kullanarak karşıya yüklemede blob'un erişim katmanını ayarlayabilirsiniz. Aşağıdaki kod örneğinde blob karşıya yüklenirken erişim katmanının nasıl ayarlanacağı gösterilmektedir:
public void uploadBlobWithAccessTier(BlobContainerClient blobContainerClient, Path filePath) {
String fileName = filePath.getFileName().toString();
BlobClient blobClient = blobContainerClient.getBlobClient(fileName);
BlobUploadFromFileOptions options = new BlobUploadFromFileOptions(filePath.toString())
.setTier(AccessTier.COOL);
try {
Response<BlockBlobItem> blockBlob = blobClient.uploadFromFileWithResponse(options, null, null);
} catch (UncheckedIOException ex) {
System.err.printf("Failed to upload from file: %s%n", ex.getMessage());
}
}
Java ile blob yükleme hakkında daha fazla bilgi edinmek için bkz. Java ile blob yükleme.
Mevcut blok blobunun erişim katmanını değiştirme
Aşağıdaki yöntemlerden birini kullanarak mevcut blok blobunun erişim katmanını değiştirebilirsiniz:
Aşağıdaki kod örneği, mevcut bir blob için erişim katmanını Sık Kullanılmayan olarak nasıl değiştireceğinizi gösterir.
public void changeBlobAccessTier(BlobClient blobClient) {
// Change the blob's access tier to cool
blobClient.setAccessTier(AccessTier.COOL);
}
Arşivlenmiş bir blobu yeniden rehidre ediyorsanız setAccessTierWithResponse yöntemini kullanın. parametreyi, tier, , HOT, veya COOL geçerli bir COLD değerine ARCHIVE ayarlayın. İsteğe bağlı olarak parametresini priority geçerli bir RehydratePriority değerine HIGH veya STANDARDolarak ayarlayabilirsiniz.
Aşağıdaki kod örneği, erişim katmanını Sık Erişimli olarak değiştirerek arşivlenmiş blobu yeniden etkinleştirme işlemini gösterir.
public void rehydrateBlobSetAccessTier(BlobClient blobClient) {
// Rehydrate the blob to hot tier using a standard rehydrate priority
blobClient.setAccessTierWithResponse(
AccessTier.HOT,
RehydratePriority.STANDARD,
null,
null,
null);
}
setAccessTierWithResponse yöntemi, yapılandırma seçeneklerini belirtmek için blobSetAccessTierOptions parametresini de kabul edebilir.
Blobu farklı bir erişim katmanına kopyalama
Kopyalama işleminin bir parçası olarak bir erişim katmanı belirterek mevcut bir blok blobunun erişim katmanını değiştirebilirsiniz. Kopyalama işlemi sırasında erişim katmanını değiştirmek için BlobBeginCopyOptions sınıfını kullanın.
yöntemini kullanarak , HOT , COOL veya COLD olarak ARCHIVE değerini belirtebilirsiniz. Eğer bir kopyalama işlemi kullanarak arşiv katmanından bir blobun rehidratasyonunu yapıyorsanız, RehydratePriority değerini veya HIGH olarak belirtmek için STANDARD yöntemini kullanın.
Aşağıdaki kod örneği, bir kopyalama işlemi kullanarak arşivlenmiş blobu Sıcak katmana yeniden canlandırma işleminin nasıl yapılacağını gösterir.
public void rehydrateBlobUsingCopy(
BlobClient sourceArchiveBlob,
BlobClient destinationRehydratedBlob) {
// Note: the destination blob must have a different name than the archived source blob
// Start the copy operation and wait for it to complete
final SyncPoller<BlobCopyInfo, Void> poller = destinationRehydratedBlob.beginCopy(
new BlobBeginCopyOptions(sourceArchiveBlob.getBlobUrl())
.setTier(AccessTier.HOT)
.setRehydratePriority(RehydratePriority.STANDARD));
PollResponse<BlobCopyInfo> response = poller
.waitUntil(LongRunningOperationStatus.SUCCESSFULLY_COMPLETED);
}
Java ile blob kopyalama hakkında daha fazla bilgi edinmek için bkz. Java ile blob kopyalama.
Resources
Java için Azure Blob Depolama istemci kitaplığını kullanarak erişim katmanlarını ayarlama 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. Erişim katmanlarını ayarlamak için istemci kitaplığı yöntemleri aşağıdaki REST API işlemini kullanır:
- Blob Katmanını Ayarlama (REST API)
İstemci kütüphanesi kaynakları
Ayrıca bakınız
İ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.