Sdílet prostřednictvím


Stažení objektu blob pomocí Javy

Tento článek ukazuje, jak stáhnout objekt blob pomocí klientské knihovny Azure Storage pro Javu. Data objektů blob si můžete stáhnout do různých cílů, včetně místní cesty k souboru, datového proudu nebo textového řetězce. Můžete také otevřít datový proud objektů blob a číst z něj.

Požadavky

  • Tento článek předpokládá, že už máte projekt nastavený tak, aby fungoval s klientskou knihovnou služby Azure Blob Storage pro Javu. Další informace o nastavení projektu, včetně instalace balíčku, přidání import direktiv a vytvoření autorizovaného objektu klienta, najdete v tématu Začínáme se službou Azure Storage a Javou.
  • Autorizační mechanismus musí mít oprávnění k provedení operace stahování. Další informace najdete v pokynech k autorizaci pro následující operaci rozhraní REST API:

Stažení objektu blob

Ke stažení objektu blob můžete použít některou z následujících metod:

Stažení do cesty k souboru

Následující příklad stáhne objekt blob do místní cesty k souboru:

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

Stažení do streamu

Následující příklad stáhne objekt blob do objektu OutputStream :

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

Stažení do řetězce

Následující příklad předpokládá, že objekt blob je textový soubor a stáhne objekt blob do objektu String :

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

Stažení ze streamu

Následující příklad stáhne objekt blob otevřením datového proudu a jeho čtením BlobInputStream :

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

Stažení objektu blob bloku s možnostmi konfigurace

Při stahování objektu blob můžete definovat možnosti konfigurace klientské knihovny. Tyto možnosti je možné ladit, aby se zlepšil výkon a zvýšil spolehlivost. Následující příklady kódu ukazují, jak použít BlobDownloadToFileOptions k definování možností konfigurace při volání metody stahování.

Určení možností přenosu dat při stahování

Hodnoty v ParallelTransferOptions můžete nakonfigurovat tak, aby se zlepšil výkon operací přenosu dat. Následující hodnoty je možné ladit pro stahování na základě potřeb vaší aplikace:

  • blockSize: Maximální velikost bloku, která se má přenést pro každou žádost. Tuto hodnotu můžete nastavit pomocí setBlockSizeLong metoda.
  • maxConcurrency: Maximální počet paralelních požadavků vydaných v libovolném okamžiku jako součást jednoho paralelního přenosu. Tuto hodnotu můžete nastavit pomocí metody setMaxConcurrency .

Přidejte do souboru následující import direktivu, která se má použít ParallelTransferOptions ke stažení:

import com.azure.storage.common.*;

Následující příklad kódu ukazuje, jak nastavit hodnoty a ParallelTransferOptions zahrnout možnosti jako součást BlobDownloadToFileOptions instance. Hodnoty uvedené v této ukázce nejsou určené jako doporučení. Pokud chcete tyto hodnoty správně vyladit, musíte zvážit konkrétní potřeby vaší aplikace.

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

Další informace o ladění možností přenosu dat najdete v tématu Ladění výkonu pro nahrávání a stahování pomocí Javy.

Zdroje informací

Další informace o tom, jak stáhnout objekty blob pomocí klientské knihovny služby Azure Blob Storage pro Javu, najdete v následujících zdrojích informací.

Operace rozhraní REST API

Sada Azure SDK pro Javu obsahuje knihovny, které jsou postavené na rozhraní Azure REST API a umožňují interakci s operacemi rozhraní REST API prostřednictvím známých paradigmat Javy. Metody klientské knihovny pro stahování objektů blob používají následující operaci rozhraní REST API:

Ukázky kódu

Prostředky klientské knihovny