Java ile blob indirme
Bu makalede Java için Azure Depolama istemci kitaplığını kullanarak blob indirme işlemi gösterilmektedir. Blob verilerini yerel dosya yolu, akış veya metin dizesi gibi çeşitli hedeflere indirebilirsiniz. Ayrıca blob akışını açabilir ve buradan okuyabilirsiniz.
Ön koş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 indirme işlemi gerçekleştirme izinleri olmalıdır. Daha fazla bilgi edinmek için aşağıdaki REST API işlemi için yetkilendirme kılavuzuna bakın:
Blobu indirme
Blobu indirmek için aşağıdaki yöntemlerden herhangi birini kullanabilirsiniz:
Dosya yoluna indirme
Aşağıdaki örnek blobu yerel dosya yoluna indirir:
public void downloadBlobToFile(BlobClient blobClient) {
blobClient.downloadToFile("filepath/local-file.png");
}
Akışa indirme
Aşağıdaki örnek bir blobu bir OutputStream
nesneye indirir:
public void downloadBlobToStream(BlobClient blobClient) {
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
blobClient.downloadStream(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
Dizeye indirme
Aşağıdaki örnekte blob'un bir metin dosyası olduğu varsayılır ve blob bir String
nesneye indirilir:
public void downloadBlobToText(BlobClient blobClient) {
String content = blobClient.downloadContent().toString();
System.out.printf("Blob contents: %s%n", content);
}
Akıştan indirme
Aşağıdaki örnek, akıştan bir ve okuyarak blobu BlobInputStream
indirir:
public void readBlobFromStream(BlobClient blobClient) {
// Opening a blob input stream allows you to read from a blob through a normal
// stream interface
try (BlobInputStream blobStream = blobClient.openInputStream()) {
blobStream.read();
} catch (IOException e) {
e.printStackTrace();
}
}
Yapılandırma seçenekleriyle blok blobu indirme
Blob indirirken istemci kitaplığı yapılandırma seçeneklerini tanımlayabilirsiniz. Bu seçenekler performansı geliştirmek ve güvenilirliği artırmak için ayarlanabilir. Aşağıdaki kod örneklerinde, indirme yöntemi çağrılırken yapılandırma seçeneklerini tanımlamak için BlobDownloadToFileOptions'ın nasıl kullanılacağı gösterilmektedir.
İndirmede veri aktarımı seçeneklerini belirtme
Veri aktarımı işlemlerinin performansını artırmak için ParallelTransferOptions içinde değerleri yapılandırabilirsiniz. İndirmeler için aşağıdaki değerler uygulamanızın gereksinimlerine göre ayarlanabilir:
blockSize
: Her istek için aktarım için en büyük blok boyutu. setBlockSizeLong yöntemini kullanarak bu değeri ayarlayabilirsiniz.maxConcurrency
: Tek bir paralel aktarımın parçası olarak herhangi bir zamanda verilen en fazla paralel istek sayısı. setMaxConcurrency yöntemini kullanarak bu değeri ayarlayabilirsiniz.
İndirme için kullanmak ParallelTransferOptions
üzere dosyanıza aşağıdaki import
yönergeyi ekleyin:
import com.azure.storage.common.*;
Aşağıdaki kod örneği için ParallelTransferOptions
değerleri ayarlamayı ve bir örneğin parçası BlobDownloadToFileOptions
olarak seçenekleri eklemeyi gösterir. Bu örnekte sağlanan değerler bir öneri olarak tasarlanmamıştır. Bu değerleri düzgün ayarlamak için uygulamanızın belirli gereksinimlerini dikkate almanız gerekir.
public void downloadBlobWithTransferOptions(BlobClient blobClient) {
ParallelTransferOptions parallelTransferOptions = new ParallelTransferOptions()
.setBlockSizeLong((long) (4 * 1024 * 1024)) // 4 MiB block size
.setMaxConcurrency(2);
BlobDownloadToFileOptions options = new BlobDownloadToFileOptions("<localFilePath>");
options.setParallelTransferOptions(parallelTransferOptions);
blobClient.downloadToFileWithResponse(options, null, null);
}
Veri aktarımı seçeneklerini ayarlama hakkında daha fazla bilgi edinmek için bkz . Java ile karşıya yüklemeler ve indirmeler için performans ayarlama.
Kaynaklar
Java için Azure Blob Depolama istemci kitaplığını kullanarak blobları indirme 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. Blobları indirmek için istemci kitaplığı yöntemleri aşağıdaki REST API işlemini kullanır:
- Blob Alma (REST API)