Topik ini menjelaskan cara menggunakan metode unduhan sederhana untuk mengunduh objek dari bucket ke memori lokal. Metode ini ideal untuk mengunduh objek dengan cepat.
Penting
Kode contoh dalam topik ini menggunakan wilayah China (Hangzhou) (cn-hangzhou) sebagai contoh. Secara default, titik akhir publik digunakan. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, Anda harus menggunakan titik akhir internal. Untuk informasi lebih lanjut tentang pemetaan antara wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan Titik Akhir OSS.
Izin
Secara default, Akun Alibaba Cloud memiliki izin penuh. Pengguna RAM atau Peran RAM di bawah Akun Alibaba Cloud tidak memiliki izin apa pun secara default. Akun Alibaba Cloud atau administrator akun harus memberikan izin operasi melalui Kebijakan RAM atau Kebijakan Bucket.
API | Aksi | Definisi |
GetObject |
| Mengunduh objek. |
| Saat mengunduh objek, jika Anda menentukan versi objek melalui versionId, izin ini diperlukan. | |
| Saat mengunduh objek, jika metadata objek berisi X-Oss-Server-Side-Encryption: KMS, izin ini diperlukan. |
Kode contoh
Berikut adalah kode contoh yang menunjukkan cara mengunduh objek dari bucket ke memori lokal.
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk Alibaba Cloud OSS SDK untuk menyederhanakan penggunaan selanjutnya.
var region = "cn-hangzhou"; // Diperlukan. Tentukan wilayah tempat bucket berada. Contoh: cn-hangzhou untuk China (Hangzhou).
var bucket = "nama bucket Anda"; // Diperlukan. Tentukan nama bucket tujuan.
var endpoint = null as string; // Opsional. Tentukan nama domain yang digunakan untuk mengakses OSS. Contoh: https://oss-cn-hangzhou.aliyuncs.com untuk China (Hangzhou).
var key = "kunci objek Anda"; // Diperlukan. Tentukan nama objek yang akan diunduh. Format: folder/namaObjek.
// Muat konfigurasi default dari OSS SDK. Konfigurasi ini secara otomatis membaca informasi kredensial (seperti AccessKey) dari variabel lingkungan.
var cfg = OSS.Configuration.LoadDefault();
// Secara eksplisit atur penggunaan variabel lingkungan untuk mendapatkan kredensial untuk verifikasi identitas. Format: OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// Atur wilayah bucket untuk konfigurasi.
cfg.Region = region;
// Jika titik akhir ditentukan, timpa titik akhir default.
if(endpoint != null)
{
cfg.Endpoint = endpoint;
}
// Buat instance klien OSS berdasarkan informasi konfigurasi.
using var client = new OSS.Client(cfg);
// Panggil metode GetObjectAsync. Secara default, objek diperoleh dalam mode streaming. Dalam hal ini, hanya header respons yang diunduh, dan konten dikembalikan sebagai aliran.
var result = await client.GetObjectAsync(new OSS.Models.GetObjectRequest()
{
Bucket = bucket,
Key = key,
});
// Untuk membaca semua konten ke dalam memori sekaligus, Anda dapat menggunakan metode reload ini.
//var result = await client.GetObjectAsync(new OSS.Models.GetObjectRequest() {
// Bucket = bucket,
// Key = key,
//},System.Net.Http.HttpCompletionOption.ResponseContentRead);
// Dapatkan aliran konten dari respons.
using var body = result.Body;
// Baca data.
var reader = new StreamReader(body!);
// Baca semua konten dari aliran sebagai string (konten dimuat ke dalam memori).
var data = reader.ReadToEnd();
// Cetak informasi hasil.
Console.WriteLine("GetObject selesai"); // Pesan yang menunjukkan bahwa operasi telah selesai.
Console.WriteLine($"Kode Status: {result.StatusCode}"); // Kode status HTTP.
Console.WriteLine($"RequestId: {result.RequestId}"); // RequestId, yang digunakan untuk pemecahan masalah di Alibaba Cloud.
Console.WriteLine("Header Respons:"); // Informasi header respons.
result.Headers.ToList().ForEach(x => Console.WriteLine(x.Key + " : " + x.Value)); // Telusuri dan cetak semua header respons.Referensi
Untuk kode contoh lengkap yang menunjukkan cara mengunduh objek ke memori lokal menggunakan metode unduhan sederhana, lihat GetObject.cs.