Salin blob dari URL objek sumber dengan .NET
Artikel ini memperlihatkan cara menyalin blob dari URL objek sumber menggunakan pustaka klien Azure Storage untuk .NET. Anda dapat menyalin blob dari sumber dalam akun penyimpanan yang sama, dari sumber di akun penyimpanan yang berbeda, atau dari objek yang dapat diakses yang diambil melalui permintaan HTTP GET pada URL tertentu.
Metode pustaka klien yang tercakup dalam artikel ini menggunakan operasi Put Blob From URL dan Put Block From URL REST API. Metode ini lebih disukai untuk skenario penyalinan tempat Anda ingin memindahkan data ke akun penyimpanan dan memiliki URL untuk objek sumber. Untuk operasi salin tempat Anda menginginkan penjadwalan asinkron, lihat Menyalin blob dengan penjadwalan asinkron menggunakan .NET.
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 penyalinan. Untuk otorisasi dengan MICROSOFT Entra ID (disarankan), Anda memerlukan peran bawaan Azure RBAC Kontributor Data Blob Penyimpanan atau yang lebih tinggi. Untuk mempelajari lebih lanjut, lihat panduan otorisasi untuk Put Blob From URL (REST API) atau Put Block From URL (REST API).
Tentang menyalin blob dari URL objek sumber
Operasi ini Put Blob From URL
membuat blob blok baru tempat konten blob dibaca dari URL tertentu. Operasi selesai secara sinkron.
Sumbernya dapat berupa objek apa pun yang dapat diambil melalui permintaan HTTP GET standar pada URL yang diberikan. Ini termasuk blob blok, blob penambahan, blob halaman, rekam jepret blob, versi blob, atau objek yang dapat diakses di dalam atau di luar Azure.
Ketika objek sumber adalah blob blok, semua konten blob yang diterapkan disalin. Namun, daftar blokir tidak dipertahankan, dan blok yang tidak dikomit tidak disalin. Konten blob tujuan identik dengan sumber, tetapi daftar blok yang diterapkan tidak dipertahankan.
Tujuannya selalu berupa blob blok, blob blok yang ada, atau blob blok baru yang dibuat oleh operasi. Konten blob yang ada ditimpa dengan konten blob baru.
Put Blob From URL
Operasi selalu menyalin seluruh blob sumber. Menyalin rentang byte atau set blok tidak didukung. Untuk melakukan pembaruan parsial pada konten blob blok dengan menggunakan URL sumber, gunakan PUT Block From URL API bersama dengan Put Block List.
Untuk mempelajari selengkapnya tentang Put Blob From URL
operasi ini, termasuk batasan ukuran blob dan pertimbangan penagihan, lihat Menempatkan komentar Blob From URL.
Menyalin blob dari URL objek sumber
Bagian ini memberikan gambaran umum metode yang disediakan oleh pustaka klien Azure Storage untuk .NET untuk melakukan operasi salin dari URL objek sumber.
Metode berikut membungkus operasi Put Blob From URL REST API, dan buat blob blok baru di mana konten blob dibaca dari URL tertentu:
Metode ini lebih disukai untuk skenario di mana Anda ingin memindahkan data ke akun penyimpanan dan memiliki URL untuk objek sumber.
Untuk objek besar, Anda dapat memilih untuk bekerja dengan blok individual. Metode berikut membungkus operasi Put Block From URL REST API. Metode ini membuat blok baru untuk diterapkan sebagai bagian dari blob tempat konten dibaca dari URL sumber:
Menyalin blob dari sumber dalam Azure
Jika Anda menyalin blob dari sumber dalam Azure, akses ke blob sumber dapat diotorisasi melalui ID Microsoft Entra, tanda tangan akses bersama (SAS), atau kunci akun.
Contoh berikut menunjukkan skenario untuk menyalin dari blob sumber dalam Azure. Metode SyncUploadFromUriAsync dapat secara opsional menerima parameter Boolean untuk menunjukkan apakah blob yang ada harus ditimpa, seperti yang ditunjukkan dalam contoh. Parameter overwrite
default ke false.
//-------------------------------------------------
// Copy a blob from the same storage account
//-------------------------------------------------
public static async Task CopyWithinStorageAccountAsync(
BlobClient sourceBlob,
BlockBlobClient destinationBlob)
{
// Get the source blob URI and create the destination blob
// overwrite param defaults to false
await destinationBlob.SyncUploadFromUriAsync(sourceBlob.Uri/*, overwrite: false*/);
}
Metode SyncUploadFromUriAsync juga dapat menerima parameter BlobSyncUploadFromUriOptions untuk menentukan opsi lebih lanjut untuk operasi.
Menyalin blob dari sumber di luar Azure
Anda dapat melakukan operasi salin pada objek sumber apa pun yang dapat diambil melalui permintaan HTTP GET pada URL tertentu, termasuk objek yang dapat diakses di luar Azure. Contoh berikut menunjukkan skenario untuk menyalin blob dari URL objek sumber yang dapat diakses.
//-------------------------------------------------
// Copy a blob from an external source
//-------------------------------------------------
public static async Task CopyFromExternalSourceAsync(
string sourceLocation,
BlockBlobClient destinationBlob)
{
Uri sourceUri = new(sourceLocation);
// Create the destination blob from the source URL
// overwrite param defaults to false
await destinationBlob.SyncUploadFromUriAsync(sourceUri/*, overwrite: false*/);
}
Sumber
Untuk mempelajari selengkapnya tentang menyalin 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 yang tercakup dalam artikel ini menggunakan operasi REST API berikut:
- Memasukkan Blob Dari URL (REST API)
- Masukkan Blok Dari URL (REST API)
Sumber daya pustaka klien
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.