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
- Langganan Azure - buat akun secara gratis
- Akun penyimpanan Azure - buat akun penyimpanan
- .NET SDK terbaru untuk sistem operasi Anda. Pastikan untuk mendapatkan SDK alih-alih runtime.
Menyiapkan lingkungan Anda
Jika Anda tidak memiliki proyek yang sudah ada, bagian ini menunjukkan kepada Anda cara menyiapkan proyek untuk bekerja dengan pustaka klien Azure Blob Storage untuk .NET. Langkah-langkahnya termasuk penginstalan paket, menambahkan arahan using
, dan membuat objek klien resmi. Untuk detailnya, lihat Mulai menggunakan Azure Blob Storage dan .NET.
Memasang paket
Dari direktori proyek Anda, instal paket untuk pustaka klien Azure Blob Storage dan Azure Identity menggunakan dotnet add package
perintah . Paket Azure.Identity diperlukan untuk koneksi tanpa kata sandi ke layanan Azure.
dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity
Tambahkan direktif using
Tambahkan arahan ini using
ke bagian atas file kode Anda:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
Beberapa contoh kode dalam artikel ini mungkin memerlukan arahan tambahan using
.
Membuat objek klien
Untuk menyambungkan aplikasi ke Blob Storage, buat instans BlobServiceClient. Contoh berikut menunjukkan cara membuat objek klien menggunakan DefaultAzureCredential
untuk otorisasi:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
Anda dapat mendaftarkan klien layanan untuk injeksi dependensi di aplikasi .NET.
Anda juga dapat membuat objek klien untuk kontainer atau blob tertentu. Untuk mempelajari selengkapnya tentang membuat dan mengelola objek klien, lihat Membuat dan mengelola objek klien yang berinteraksi dengan sumber daya data.
Authorization
Mekanisme otorisasi harus memiliki izin yang diperlukan untuk melakukan operasi pengunduhan. Untuk otorisasi dengan MICROSOFT Entra ID (disarankan), Anda memerlukan peran bawaan Azure RBAC Storage Blob Data Reader atau yang lebih tinggi. Untuk mempelajari lebih lanjut, lihat panduan otorisasi untuk Get Blob (REST API).
Mengunduh 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 melempar DirectoryNotFoundException. Jika file sudah ada di , file akan ditimpa localFilePath
secara 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 melempar 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 menyetel 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 unggahan dan unduhan.
Tentukan opsi validasi transfer saat diunduh
Anda dapat menentukan opsi validasi transfer untuk membantu memastikan bahwa data diunduh dengan benar dan belum dirusak selama transit. Opsi validasi transfer dapat ditentukan di tingkat klien menggunakan BlobClientOptions, yang menerapkan opsi validasi ke semua metode yang dipanggil 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 | 1 | Tidak ada algoritma yang dipilih. Jangan hitung atau minta 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.
Sampel kode
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 sudah dikenal. Metode pustaka klien untuk mengunduh blob menggunakan operasi REST API berikut:
- Mendapatkan Blob (REST API)
Sumber daya pustaka klien
Lihat juga
Konten terkait
- Artikel ini adalah bagian dari panduan pengembang Blob Storage untuk .NET. Untuk mempelajari lebih lanjut, lihat daftar lengkap artikel panduan pengembang di Membangun aplikasi .NET Anda.