Delen via


Een blob downloaden met Java

In dit artikel wordt beschreven hoe u een blob downloadt met behulp van de Azure Storage-clientbibliotheek voor Java. U kunt blobgegevens downloaden naar verschillende bestemmingen, waaronder een lokaal bestandspad, een stroom of een tekenreeks. U kunt ook een blobstream openen en ermee lezen.

Vereisten

  • In dit artikel wordt ervan uitgegaan dat u al een project hebt ingesteld voor gebruik met de Azure Blob Storage-clientbibliotheek voor Java. Zie Aan de slag met Azure Storage en Java voor meer informatie over het instellen van uw project, inclusief pakketinstallatie, het toevoegen van import instructies en het maken van een geautoriseerd clientobject.
  • Het autorisatiemechanisme moet machtigingen hebben om een downloadbewerking uit te voeren. Zie de autorisatierichtlijnen voor de volgende REST API-bewerking voor meer informatie:

Blob downloaden

U kunt een van de volgende methoden gebruiken om een blob te downloaden:

Downloaden naar een bestandspad

In het volgende voorbeeld wordt een blob gedownload naar een lokaal bestandspad:

public void downloadBlobToFile(BlobClient blobClient) {
    blobClient.downloadToFile("filepath/local-file.png");
}

Downloaden naar een stream

In het volgende voorbeeld wordt een blob gedownload naar een OutputStream object:

public void downloadBlobToStream(BlobClient blobClient) {
    try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
        blobClient.downloadStream(outputStream);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

Downloaden naar een tekenreeks

In het volgende voorbeeld wordt ervan uitgegaan dat de blob een tekstbestand is en dat de blob wordt gedownload naar een String object:

public void downloadBlobToText(BlobClient blobClient) {
    String content = blobClient.downloadContent().toString();
    System.out.printf("Blob contents: %s%n", content);
}

Downloaden uit een stream

In het volgende voorbeeld wordt een blob gedownload door een BlobInputStream blob te openen en uit de stream te lezen:

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();
    }
}

Een blok-blob downloaden met configuratieopties

U kunt configuratieopties voor clientbibliotheek definiëren bij het downloaden van een blob. Deze opties kunnen worden afgestemd om de prestaties te verbeteren en de betrouwbaarheid te verbeteren. In de volgende codevoorbeelden ziet u hoe u BlobDownloadToFileOptions gebruikt om configuratieopties te definiëren bij het aanroepen van een downloadmethode.

Opties voor gegevensoverdracht opgeven bij downloaden

U kunt waarden in ParallelTransferOptions configureren om de prestaties voor gegevensoverdrachtbewerkingen te verbeteren. De volgende waarden kunnen worden afgestemd op downloads op basis van de behoeften van uw app:

  • blockSize: De maximale blokgrootte die moet worden overgedragen voor elke aanvraag. U kunt deze waarde instellen met behulp van de methode setBlockSizeLong .
  • maxConcurrency: Het maximum aantal parallelle aanvragen dat op een bepaald moment wordt uitgegeven als onderdeel van één parallelle overdracht. U kunt deze waarde instellen met behulp van de methode setMaxConcurrency .

Voeg de volgende import instructie toe aan uw bestand om te gebruiken ParallelTransferOptions voor een download:

import com.azure.storage.common.*;

In het volgende codevoorbeeld ziet u hoe u waarden instelt voor ParallelTransferOptions en de opties opneemt als onderdeel van een BlobDownloadToFileOptions exemplaar. De waarden in dit voorbeeld zijn niet bedoeld als aanbeveling. Als u deze waarden goed wilt afstemmen, moet u rekening houden met de specifieke behoeften van uw app.

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);
}

Zie Prestaties afstemmen voor uploads en downloads met Java voor meer informatie over het afstemmen van opties voor het afstemmen van gegevensoverdracht.

Resources

Zie de volgende resources voor meer informatie over het downloaden van blobs met behulp van de Azure Blob Storage-clientbibliotheek voor Java.

REST API-bewerkingen

De Azure SDK voor Java bevat bibliotheken die zijn gebaseerd op de Azure REST API, zodat u kunt communiceren met REST API-bewerkingen via bekende Java-paradigma's. De clientbibliotheekmethoden voor het downloaden van blobs gebruiken de volgende REST API-bewerking:

  • Blob ophalen (REST API)

Codevoorbeelden

Clientbibliotheekbronnen