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)

Kod örnekleri

İstemci kitaplığı kaynakları