Topik ini menjelaskan cara dengan cepat mengunggah file lokal ke Object Storage Service (OSS) menggunakan metode unggah sederhana. Metode ini mudah digunakan dan cocok untuk skenario di mana Anda perlu dengan cepat mengunggah file lokal.
Pertimbangan
Kode contoh dalam topik ini menggunakan ID Wilayah cn-hangzhou dari Wilayah China (Hangzhou) sebagai contoh dan menggunakan titik akhir publik secara default. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama dengan OSS, gunakan 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 | Tindakan | Definisi |
PutObject |
| Mengunggah objek. |
| Saat mengunggah objek, jika Anda menentukan tag objek melalui | |
| Saat mengunggah objek, jika metadata objek berisi | |
|
Unggah file lokal
Jika Anda mengunggah objek yang namanya sama dengan objek yang sudah ada dan dapat diakses, objek yang sudah ada akan ditimpa oleh objek yang diunggah.
Tabel berikut mencantumkan parameter umum yang harus dikonfigurasi saat mengunggah objek.
Parameter | Deskripsi |
bucket | Nama bucket. Nama bucket harus mematuhi konvensi berikut:
|
key | Path lengkap objek. Jangan sertakan nama bucket dalam path lengkap. Nama objek harus mematuhi konvensi penamaan berikut:
|
Kode sampel berikut menunjukkan cara mengunggah file lokal ke bucket:
using System.Text; // Impor namespace System.Text untuk menangani pengkodean karakter (seperti string yang dikodekan UTF-8)
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk Alibaba Cloud OSS SDK untuk menyederhanakan penggunaan selanjutnya
var region = "cn-hangzhou"; // Diperlukan, atur wilayah tempat bucket berada. Misalnya, jika bucket berada di Wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou
var bucket = "nama bucket Anda"; // Diperlukan, atur nama bucket target
var endpoint = null as string; // Opsional, tentukan titik akhir untuk mengakses layanan OSS. Misalnya, jika bucket berada di Wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com
var key = "kunci objek Anda"; // Diperlukan, tentukan nama objek untuk diunggah. Format: (folder/namaObjek)
var filePath = "/Users/lokasiLokalAnda/namaFileAnda"; // Diperlukan, tentukan path file lokal
// Muat konfigurasi default OSS SDK, yang secara otomatis membaca informasi kredensial (seperti AccessKey) dari variabel lingkungan
var cfg = OSS.Configuration.LoadDefault();
// Secara eksplisit atur untuk menggunakan variabel lingkungan untuk kredensial, digunakan untuk verifikasi identitas (format: OSS_ACCESS_KEY_ID, OSS_ACCESS_KEY_SECRET)
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// Atur wilayah bucket dalam konfigurasi
cfg.Region = region;
// Jika titik akhir ditentukan, timpa titik akhir default
if(endpoint != null)
{
cfg.Endpoint = endpoint;
}
// Buat instance klien OSS menggunakan informasi konfigurasi
using var client = new OSS.Client(cfg);
// Panggil metode PutObjectFromFileAsync untuk mengunggah file lokal
var result = await client.PutObjectFromFileAsync(new()
{
Bucket = bucket,
Key = key
}, filePath);
// Tampilkan hasil unggahan
Console.WriteLine("PutObjectFromFile selesai"); // Menunjukkan operasi telah selesai
Console.WriteLine($"StatusCode: {result.StatusCode}"); // Kode status HTTP
Console.WriteLine($"RequestId: {result.RequestId}"); // RequestId, digunakan untuk pemecahan masalah oleh 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 responsUnggah array byte
using System.Text; // Impor namespace System.Text untuk menangani pengkodean karakter (seperti string yang dikodekan UTF-8)
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk Alibaba Cloud OSS SDK untuk menyederhanakan penggunaan selanjutnya
var region = "cn-hangzhou"; // Diperlukan, atur wilayah tempat bucket berada. Misalnya, jika bucket berada di Wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou
var bucket = "nama bucket Anda"; // Diperlukan, atur nama bucket target
var endpoint = null as string; // Opsional, tentukan titik akhir untuk mengakses layanan OSS. Misalnya, jika bucket berada di Wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com
var key = "kunci objek Anda"; // Diperlukan, tentukan nama objek untuk diunggah. Format: (folder/namaObjek)
// Muat konfigurasi default OSS SDK, yang secara otomatis membaca informasi kredensial (seperti AccessKey) dari variabel lingkungan
var cfg = OSS.Configuration.LoadDefault();
// Secara eksplisit atur untuk menggunakan variabel lingkungan untuk kredensial, digunakan untuk verifikasi identitas (format: OSS_ACCESS_KEY_ID, OSS_ACCESS_KEY_SECRET)
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// Atur wilayah bucket dalam konfigurasi
cfg.Region = region;
// Jika titik akhir ditentukan, timpa titik akhir default
if(endpoint != null)
{
cfg.Endpoint = endpoint;
}
// Buat instance klien OSS menggunakan informasi konfigurasi
using var client = new OSS.Client(cfg);
// Konten yang akan diunggah. Contoh konten: string sederhana "hello oss!", dalam skenario nyata bisa berupa aliran file, array byte, dll.
var content = "hello oss!";
// Ubah string menjadi array byte yang dikodekan UTF-8, lalu bungkus dalam MemoryStream
// MemoryStream digunakan untuk memproses aliran data di memori, cocok untuk unggahan file kecil; untuk file besar, FileStream direkomendasikan
var bodyStream = new MemoryStream(Encoding.UTF8.GetBytes(content));
// Panggil metode PutObjectAsync untuk mengunggah objek secara asinkron (memerlukan objek permintaan yang berisi Bucket, Key, dan Body)
// Metode ini akan mengunggah data dari bodyStream ke jalur Key yang ditentukan di Bucket target
var result = await client.PutObjectAsync(new OSS.Models.PutObjectRequest()
{
Bucket = bucket, // Nama bucket target
Key = key, // Kunci unik objek di bucket
Body = bodyStream // Aliran konten untuk diunggah (dalam hal ini, data string di memori)
});
// Tampilkan hasil unggahan
Console.WriteLine("PutObject selesai"); // Menunjukkan operasi telah selesai
Console.WriteLine($"StatusCode: {result.StatusCode}"); // Kode status HTTP
Console.WriteLine($"RequestId: {result.RequestId}"); // RequestId, digunakan untuk pemecahan masalah oleh 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 responsReferensi
Untuk kode sampel lengkap untuk unggah sederhana, lihat putObject.cs.