All Products
Search
Document Center

Object Storage Service:Pemrosesan Sinkron (OSS SDK untuk C# V2)

Last Updated:Nov 09, 2025

Dalam pemrosesan sinkron (`x-oss-process`), program harus menunggu hingga tugas selesai sebelum melanjutkan ke tugas berikutnya. Topik ini menjelaskan cara melakukan pemrosesan gambar sinkron menggunakan OSS SDK untuk C# V2.

Peringatan

Kode contoh dalam topik ini menggunakan Wilayah China (Hangzhou) (ID wilayah: cn-hangzhou) sebagai contoh. Secara default, Titik akhir publik digunakan. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan Titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan titik akhir.

Kode contoh

Berikut adalah kode contoh yang menunjukkan cara menggunakan OSS SDK untuk C# V2 untuk mengubah ukuran citra dan menyimpan citra yang telah diproses ke bucket tertentu untuk persistensi.

using System.Text;
using OSS = AlibabaCloud.OSS.V2;  // Buat alias untuk Alibaba Cloud OSS SDK untuk menyederhanakan penggunaan selanjutnya.

var region = "cn-hangzhou";  // Diperlukan. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur parameter ini ke cn-hangzhou.
var endpoint = null as string;  // Opsional. Titik akhir yang digunakan untuk mengakses OSS. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur parameter ini ke https://oss-cn-hangzhou.aliyuncs.com.
var bucket = "nama bucket Anda";  // Diperlukan. Nama bucket.
var key = "kunci objek Anda";  // Diperlukan. Nama objek yang akan diproses.

// Muat konfigurasi default dari OSS SDK. Konfigurasi 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, OSS_ACCESS_KEY_SECRET).
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// Atur wilayah bucket dalam konfigurasi.
cfg.Region = region;   
// Jika titik akhir ditentukan, itu akan menimpa titik akhir default. 
if(endpoint != null) 
{
    cfg.Endpoint = endpoint;
} 

// Buat instans klien OSS menggunakan informasi konfigurasi.
using var client = new OSS.Client(cfg); 

// Tentukan lokasi penyimpanan untuk citra yang diproses. Bucket harus berada di wilayah yang sama dengan bucket sumber.
var targetBucket = bucket!;
// Nama citra yang diproses (tambahkan awalan "process-").
var targetKey = $"process-{key}";
// Atur aturan pemrosesan gambar: ubah ukuran gambar menjadi ukuran tetap 100 × 100 piksel.
var style = "image/resize,m_fixed,w_100,h_100";

// Enkode Base64 informasi penyimpanan tujuan.
var targetNameBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(targetBucket));
var targetKeyBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(targetKey));

// Bangun instruksi pemrosesan lengkap: ubah ukuran gambar lalu simpan di lokasi yang ditentukan.
var process = $"{style}|sys/saveas,o_{targetKeyBase64},b_{targetNameBase64}";

// Panggil metode ProcessObjectAsync untuk melakukan pemrosesan gambar dan menyimpan hasilnya.
var result = await client.ProcessObjectAsync(new OSS.Models.ProcessObjectRequest()
{
    Bucket = bucket,
    Key = key,
    Process = process
});

// Cetak informasi hasil.
Console.WriteLine("ProcessObject selesai");  // Operasi selesai.
Console.WriteLine($"Kode Status: {result.StatusCode}");  // Kode status HTTP.
Console.WriteLine($"ID Permintaan: {result.RequestId}");  // ID permintaan, yang digunakan oleh Alibaba Cloud untuk memecahkan masalah.
Console.WriteLine("Header Respons:");  // Header respons.
result.Headers.ToList().ForEach(x => Console.WriteLine(x.Key + " : " + x.Value));   // Telusuri dan cetak semua header respons.

Referensi