Mengunduh blob dengan .NET

Artikel ini memperlihatkan cara mengunduh blob menggunakan pustaka klien Azure Storage untuk .NET. Anda dapat mengunduh data blob ke berbagai tujuan, termasuk jalur file lokal, aliran, atau string teks. Anda juga dapat membuka aliran blob dan membacanya.

Prasyarat

  • Artikel ini mengasumsikan Anda sudah memiliki proyek yang disiapkan untuk bekerja dengan pustaka klien Azure Blob Storage untuk .NET. Untuk mempelajari tentang menyiapkan proyek Anda, termasuk penginstalan paket, menambahkan arahanusing, dan membuat objek klien resmi, lihat Mulai menggunakan Azure Blob Storage dan .NET.
  • Mekanisme otorisasi harus memiliki izin untuk melakukan operasi pengunduhan. Untuk mempelajari lebih lanjut, lihat panduan otorisasi untuk operasi REST API berikut:

Unduh blob

Anda dapat menggunakan salah satu metode berikut untuk mengunduh blob:

Anda juga dapat membuka aliran untuk membaca dari blob. Aliran hanya mengunduh blob saat aliran dibaca. Anda dapat menggunakan salah satu dari metode berikut:

Mengunduh ke jalur file

Contoh berikut mengunduh blob ke jalur file lokal. Jika direktori yang ditentukan tidak ada, kode akan menampilkan DirectoryNotFoundException. Jika file sudah ada di , file akan ditimpa localFilePathsecara default selama unduhan berikutnya.

public static async Task DownloadBlobToFileAsync(
    BlobClient blobClient,
    string localFilePath)
{
    await blobClient.DownloadToAsync(localFilePath);
}

Mengunduh ke aliran

Contoh berikut mengunduh blob dengan membuat objek Stream lalu mengunduh ke aliran tersebut. Jika direktori yang ditentukan tidak ada, kode akan menampilkan DirectoryNotFoundException.

public static async Task DownloadBlobToStreamAsync(
    BlobClient blobClient,
    string localFilePath)
{
    FileStream fileStream = File.OpenWrite(localFilePath);

    await blobClient.DownloadToAsync(fileStream);

    fileStream.Close();
}

Mengunduh ke string

Contoh berikut mengasumsikan bahwa blob adalah file teks, dan mengunduh blob ke string:

public static async Task DownloadBlobToStringAsync(BlobClient blobClient)
{
    BlobDownloadResult downloadResult = await blobClient.DownloadContentAsync();
    string blobContents = downloadResult.Content.ToString();
}

Mengunduh dari aliran

Contoh berikut mengunduh blob dengan membaca dari aliran:

public static async Task DownloadBlobFromStreamAsync(
    BlobClient blobClient,
    string localFilePath)
{
    using (var stream = await blobClient.OpenReadAsync())
    {
        FileStream fileStream = File.OpenWrite(localFilePath);
        await stream.CopyToAsync(fileStream);
    }
}

Mengunduh blob blok dengan opsi konfigurasi

Anda dapat menentukan opsi konfigurasi pustaka klien saat mengunduh blob. Opsi ini dapat disetel untuk meningkatkan performa dan meningkatkan keandalan. Contoh kode berikut menunjukkan cara menggunakan BlobDownloadToOptions untuk menentukan opsi konfigurasi saat memanggil metode unduhan. Perhatikan bahwa opsi yang sama tersedia untuk BlobDownloadOptions.

Tentukan opsi transfer data saat diunduh

Anda dapat mengonfigurasi nilai di StorageTransferOptions untuk meningkatkan performa operasi transfer data. Contoh kode berikut menunjukkan cara mengatur nilai untuk StorageTransferOptions dan menyertakan opsi sebagai bagian BlobDownloadToOptions dari instans. Nilai yang disediakan dalam sampel ini tidak dimaksudkan untuk menjadi rekomendasi. Untuk menyempurnakan nilai-nilai ini dengan benar, Anda perlu mempertimbangkan kebutuhan spesifik aplikasi Anda.

public static async Task DownloadBlobWithTransferOptionsAsync(
    BlobClient blobClient,
    string localFilePath)
{
    FileStream fileStream = File.OpenWrite(localFilePath);

    var transferOptions = new StorageTransferOptions
    {
        // Set the maximum number of parallel transfer workers
        MaximumConcurrency = 2,

        // Set the initial transfer length to 8 MiB
        InitialTransferSize = 8 * 1024 * 1024,

        // Set the maximum length of a transfer to 4 MiB
        MaximumTransferSize = 4 * 1024 * 1024
    };

    BlobDownloadToOptions downloadOptions = new BlobDownloadToOptions()
    {
        TransferOptions = transferOptions
    };

    await blobClient.DownloadToAsync(fileStream, downloadOptions);

    fileStream.Close();
}

Untuk mempelajari selengkapnya tentang menyetel opsi transfer data, lihat Penyetelan performa untuk pengunggahan dan unduhan.

Tentukan opsi validasi transfer saat mengunduh

Anda dapat menentukan opsi validasi transfer untuk membantu memastikan bahwa data diunduh dengan benar dan belum diubah selama transit. Opsi validasi transfer dapat ditentukan di tingkat klien menggunakan BlobClientOptions, yang menerapkan opsi validasi ke semua metode yang disebut dari instans BlobClient .

Anda juga dapat mengganti opsi validasi transfer di tingkat metode menggunakan BlobDownloadToOptions. Contoh kode berikut menunjukkan cara membuat BlobDownloadToOptions objek dan menentukan algoritma untuk membuat checksum. Checksum kemudian digunakan oleh layanan untuk memverifikasi integritas data konten yang diunduh.

public static async Task DownloadBlobWithChecksumAsync(
    BlobClient blobClient,
    string localFilePath)
{
    FileStream fileStream = File.OpenWrite(localFilePath);

    var validationOptions = new DownloadTransferValidationOptions
    {
        AutoValidateChecksum = true,
        ChecksumAlgorithm = StorageChecksumAlgorithm.Auto
    };

    BlobDownloadToOptions downloadOptions = new BlobDownloadToOptions()
    {
        TransferValidation = validationOptions
    };

    await blobClient.DownloadToAsync(fileStream, downloadOptions);

    fileStream.Close();
}

Tabel berikut ini memperlihatkan opsi yang tersedia untuk algoritma checksum, seperti yang ditentukan oleh StorageChecksumAlgorithm:

Nama Nilai Deskripsi
Otomatis 0 Disarankan. Memungkinkan pustaka memilih algoritma. Versi pustaka yang berbeda dapat memilih algoritma yang berbeda.
Tidak ada 1 Tidak ada algoritma yang dipilih. Jangan menghitung atau meminta checksum.
MD5 2 Algoritma hash MD5 standar.
StorageCrc64 3 CRC kustom Azure Storage 64-bit.

Sumber

Untuk mempelajari selengkapnya tentang cara mengunduh blob menggunakan pustaka klien Azure Blob Storage untuk .NET, lihat sumber daya berikut ini.

Operasi REST API

Azure SDK untuk .NET berisi pustaka yang dibangun di atas Azure REST API, memungkinkan Anda berinteraksi dengan operasi REST API melalui paradigma .NET yang familier. Metode pustaka klien untuk mengunduh blob menggunakan operasi REST API berikut:

Sampel kode

Sumber daya pustaka klien

Lihat juga