Integrasi cepat
Prosedur berikut menjelaskan cara mengintegrasikan OSS SDK for C# 2.0:
Persiapan lingkungan
SDK mendukung
.NET Framework 4.7.1dan versi yang lebih baru.SDK mendukung
.NET Standard 2.0dan versi yang lebih baru.SDK mendukung
.NET 5.0dan versi yang lebih baru.Jika Anda belum memiliki lingkungan .NET yang diperlukan atau versi Anda sudah usang, ikuti langkah-langkah berikut:
Untuk .NET Framework: Kunjungi situs resmi Microsoft untuk mengunduh dan menginstal .NET Framework 4.7.1 atau versi yang lebih baru.
Untuk .NET Standard: .NET Standard adalah spesifikasi implementasi yang didukung oleh berbagai platform .NET, seperti .NET Framework dan .NET. Pastikan Anda telah menginstal implementasi .NET yang kompatibel.
Untuk .NET: Kunjungi situs resmi .NET untuk mengunduh dan menginstal .NET 5.0 atau versi yang lebih baru.
Instal SDK
Gunakan versi terbaru OSS SDK for C# V2 agar kode contoh dalam topik ini dapat berjalan sebagaimana mestinya.
Instal menggunakan NuGet
Periksa apakah NuGet telah diinstal:
Pastikan manajer paket NuGet telah diinstal di Visual Studio. Jika belum, buka Visual Studio Installer melalui menu Tools -> Get Tools and Features. Pada tab Workloads, pilih .NET desktop development atau ASP.NET and web development. Manajer paket NuGet secara otomatis disertakan dalam workload tersebut.
Buka proyek:
Buat proyek baru atau buka proyek yang sudah ada di Visual Studio.
Buka NuGet Package Manager:
Pada menu bar, pilih Tools -> NuGet Package Manager -> Manage NuGet Packages for Solution.
Cari dan instal SDK:
Pada tab Browse di NuGet Package Manager, cari
AlibabaCloud.OSS.V2.Dalam hasil pencarian, temukan dan pilih
AlibabaCloud.OSS.V2. Pastikan Anda memilih versi stabil terbaru.Klik Install untuk menginstal paket tersebut. Tunggu hingga proses instalasi selesai.
Verifikasi instalasi:
Setelah instalasi selesai,
AlibabaCloud.OSS.V2akan muncul di bawah References di Solution Explorer. Anda kini dapat menggunakan fitur-fitur yang disediakan oleh SDK dalam proyek Anda.
Instal dengan mengimpor proyek
Clone repositori GitHub:
Buka command prompt atau Git Bash, lalu jalankan perintah berikut untuk meng-clone repositori:
git clone https://github.com/aliyun/alibabacloud-oss-csharp-sdk-v2.git
Tambahkan proyek ke solusi Anda:
Di Visual Studio, klik kanan solusi Anda, lalu pilih Add -> Existing Project....
Arahkan ke direktori kode sumber yang telah di-clone, pilih file
AlibabaCloud.OSS.V2.csproj, lalu klik Open.
Tambahkan referensi proyek:
Klik kanan proyek Anda, lalu pilih Add -> Reference....
Pada kotak dialog yang muncul, buka tab Projects, pilih proyek
AlibabaCloud.OSS.V2, lalu klik OK.
Konfigurasi kredensial akses
Konfigurasikan kredensial akses menggunakan pasangan AccessKey pengguna RAM.
Di Konsol RAM, buat pengguna RAM yang menggunakan Permanent AccessKey Pair, simpan pasangan AccessKey tersebut, lalu berikan izin
AliyunOSSFullAccesskepada pengguna RAM tersebut.Konfigurasikan variabel lingkungan menggunakan pasangan AccessKey pengguna RAM.
Linux
Jalankan perintah berikut di antarmuka baris perintah untuk menambahkan pengaturan variabel lingkungan ke file
~/.bashrc.echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrcJalankan perintah berikut untuk menerapkan konfigurasi.
source ~/.bashrcJalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah dikonfigurasi.
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
macOS
Jalankan perintah berikut di terminal untuk memeriksa jenis shell default.
echo $SHELLIkuti langkah-langkah sesuai jenis shell default Anda.
Zsh
Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file
~/.zshrc.echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrcJalankan perintah berikut untuk menerapkan konfigurasi.
source ~/.zshrcJalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah dikonfigurasi.
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
Bash
Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file
~/.bash_profile.echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profileJalankan perintah berikut untuk menerapkan konfigurasi.
source ~/.bash_profileJalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah dikonfigurasi.
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
Windows
CMD
Jalankan perintah berikut di Command Prompt.
setx OSS_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID" setx OSS_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"Jalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah dikonfigurasi.
echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET%
PowerShell
Jalankan perintah berikut di PowerShell.
[Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)Jalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah dikonfigurasi.
[Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
Inisialisasi klien
Inisialisasi OSSClient berdasarkan wilayah dan titik akhir, lalu jalankan kode uji.
using System.Text; // Impor namespace System.Text untuk memproses pengkodean karakter, seperti string berkode UTF-8.
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK Alibaba Cloud OSS guna menyederhanakan penggunaan selanjutnya.
var region = "cn-hangzhou"; // Wajib. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region menjadi cn-hangzhou.
var bucket = "your bucket name"; // Wajib. Nama bucket tujuan.
var endpoint = null as string; // Opsional. Titik akhir yang digunakan untuk mengakses OSS. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com.
var key = "your object key"; // Wajib. Nama objek yang akan diunggah. Formatnya adalah folder/objectName.
// Muat konfigurasi default SDK OSS. Konfigurasi ini secara otomatis membaca informasi kredensial, seperti pasangan AccessKey, dari variabel lingkungan.
var cfg = OSS.Configuration.LoadDefault();
// Secara eksplisit tentukan bahwa variabel lingkungan digunakan untuk memperoleh kredensial verifikasi identitas. Formatnya adalah OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// Atur wilayah bucket.
cfg.Region = region;
// Jika titik akhir ditentukan, titik akhir default akan ditimpa.
if(endpoint != null)
{
cfg.Endpoint = endpoint;
}
// Buat instance klien OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);
// Konten objek yang akan diunggah. Contoh konten: string sederhana "hello oss!". Dalam skenario aktual, kontennya bisa berupa aliran file atau larik byte.
var content = "hello oss!";
// Ubah string menjadi larik byte berkode UTF-8, lalu bungkus ke dalam MemoryStream.
// MemoryStream digunakan untuk memproses aliran data di memori dan cocok untuk mengunggah file kecil. Gunakan FileStream untuk file besar.
var bodyStream = new MemoryStream(Encoding.UTF8.GetBytes(content));
// Panggil metode PutObjectAsync untuk mengunggah objek secara asinkron. Anda harus meneruskan objek permintaan yang berisi bucket, key, dan body.
// Metode ini mengunggah data dalam bodyStream ke path key yang ditentukan di bucket yang ditentukan.
var result = await client.PutObjectAsync(new OSS.Models.PutObjectRequest()
{
Bucket = bucket, // Nama bucket tujuan.
Key = key, // Kunci unik objek dalam bucket.
Body = bodyStream // Aliran konten yang akan diunggah. Dalam contoh ini, berupa data string di memori.
});
// Cetak hasil pengunggahan.
Console.WriteLine("PutObject done"); // Pesan yang menunjukkan operasi telah selesai.
Console.WriteLine($"StatusCode: {result.StatusCode}"); // Kode status HTTP.
Console.WriteLine($"RequestId: {result.RequestId}"); // ID permintaan, yang digunakan untuk troubleshooting.
Console.WriteLine("Response Headers:"); // Informasi header respons.
result.Headers.ToList().ForEach(x => Console.WriteLine(x.Key + " : " + x.Value)); // Telusuri dan cetak semua header respons.Setelah menjalankan kode tersebut, hasil berikut dikembalikan. Ini menunjukkan bahwa file berhasil diunggah:
PutObject done
StatusCode: 200
RequestId: 68808D6D6A91E53037F7AAE9
Response Headers:
Server : AliyunOSS
Date : Wed, 23 Jul 2025 07:21:17 GMT
Connection : keep-alive
x-oss-request-id : 68808D6D6A91E53037F7AAE9
Vary : Origin
ETag : "968205D07B5A124D6ADA9336826C2C90"
x-oss-hash-crc64ecma : 11833582957755287462
x-oss-version-id : CAEQpgEYgYCA3fPQ2MEZIiA2ZmI4NGZkZWQzMWY0ZDZkOTFmMjUxYzRkNGMxODdkZg--
x-oss-server-time : 90
Content-Length : 0
Content-MD5 : loIF0HtaEk1q2pM2gmwskA==Konfigurasi klien
Gunakan nama domain kustom
Jika Anda menggunakan titik akhir OSS default untuk mengakses objek, objek tersebut mungkin tidak dapat diakses atau gagal dipratinjau di browser. Anda dapat memetakan nama domain kustom untuk mengakses OSS. Hal ini memungkinkan Anda mempratinjau objek di browser dan menggunakan CDN untuk mempercepat pengiriman konten.
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK Alibaba Cloud OSS guna menyederhanakan penggunaan selanjutnya.
var region = "cn-hangzhou"; // Wajib. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region menjadi cn-hangzhou.
var endpoint = "https://www.example-***.com"; // Wajib. Nama domain kustom Anda. Contoh: www.example-***.com.
// Muat konfigurasi default SDK OSS. Konfigurasi ini secara otomatis membaca informasi kredensial, seperti pasangan AccessKey, dari variabel lingkungan.
var cfg = OSS.Configuration.LoadDefault();
// Secara eksplisit tentukan bahwa variabel lingkungan digunakan untuk memperoleh kredensial verifikasi identitas. Formatnya adalah OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// Atur wilayah bucket.
cfg.Region = region;
// Jika titik akhir ditentukan, titik akhir default akan ditimpa.
if (endpoint != null)
{
cfg.Endpoint = endpoint;
}
// Perhatikan bahwa Anda harus mengatur nilai menjadi true untuk mengaktifkan opsi CNAME. Jika tidak, Anda tidak dapat menggunakan nama domain kustom.
cfg.UseCName = true;
// Buat instance klien OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);
// Gunakan klien yang telah dibuat untuk melakukan operasi selanjutnya...Gunakan titik akhir internal
Anda dapat menggunakan titik akhir internal untuk mengakses sumber daya OSS di wilayah yang sama. Hal ini mengurangi biaya trafik dan meningkatkan kecepatan akses.
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK Alibaba Cloud OSS guna menyederhanakan penggunaan selanjutnya.
var region = "cn-hangzhou"; // Wajib. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region menjadi cn-hangzhou.
var endpoint = "https://oss-cn-hangzhou-internal.aliyuncs.com"; // Opsional. Titik akhir internal yang digunakan untuk mengakses OSS. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou-internal.aliyuncs.com.
// Muat konfigurasi default SDK OSS. Konfigurasi ini secara otomatis membaca informasi kredensial, seperti pasangan AccessKey, dari variabel lingkungan.
var cfg = OSS.Configuration.LoadDefault();
// Secara eksplisit tentukan bahwa variabel lingkungan digunakan untuk memperoleh kredensial verifikasi identitas. Formatnya adalah OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// Atur wilayah bucket.
cfg.Region = region;
// Jika titik akhir ditentukan, titik akhir default akan ditimpa.
if (endpoint != null)
{
cfg.Endpoint = endpoint;
}
// Anda juga dapat mengatur cfg.UseInternalEndpoint = true untuk mengonfigurasi titik akhir internal tanpa perlu menentukan titik akhir internal secara eksplisit.
// cfg.UseInternalEndpoint = true;
// Buat instance klien OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);
// Gunakan klien yang telah dibuat untuk melakukan operasi selanjutnya...Gunakan titik akhir percepatan OSS
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK Alibaba Cloud OSS guna menyederhanakan penggunaan selanjutnya.
var region = "cn-hangzhou"; // Wajib. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region menjadi cn-hangzhou.
var endpoint = "https://oss-accelerate.aliyuncs.com"; // Opsional. Titik akhir percepatan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi 'https://oss-accelerate.aliyuncs.com'.
// Muat konfigurasi default SDK OSS. Konfigurasi ini secara otomatis membaca informasi kredensial, seperti pasangan AccessKey, dari variabel lingkungan.
var cfg = OSS.Configuration.LoadDefault();
// Secara eksplisit tentukan bahwa variabel lingkungan digunakan untuk memperoleh kredensial verifikasi identitas. Formatnya adalah OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// Atur wilayah bucket.
cfg.Region = region;
// Jika titik akhir ditentukan, titik akhir default akan ditimpa.
if (endpoint != null)
{
cfg.Endpoint = endpoint;
}
// Anda juga dapat mengatur cfg.UseAccelerateEndpoint = true untuk mengonfigurasi titik akhir percepatan tanpa perlu menentukan titik akhir percepatan secara eksplisit.
// cfg.UseAccelerateEndpoint = true;
// Buat instance klien OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);
// Gunakan klien yang telah dibuat untuk melakukan operasi selanjutnya... Gunakan nama domain pribadi
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK Alibaba Cloud OSS guna menyederhanakan penggunaan selanjutnya.
var region = "cn-hangzhou"; // Wajib. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region menjadi cn-hangzhou.
var endpoint = "https://service.corp.example.com"; // Wajib. Nama domain khusus Anda. Contoh: https://service.corp.example.com.
// Muat konfigurasi default SDK OSS. Konfigurasi ini secara otomatis membaca informasi kredensial, seperti pasangan AccessKey, dari variabel lingkungan.
var cfg = OSS.Configuration.LoadDefault();
// Secara eksplisit tentukan bahwa variabel lingkungan digunakan untuk memperoleh kredensial verifikasi identitas. Formatnya adalah OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// Atur wilayah bucket.
cfg.Region = region;
// Jika titik akhir ditentukan, titik akhir default akan ditimpa.
if (endpoint != null)
{
cfg.Endpoint = endpoint;
}
// Buat instance klien OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);
// Gunakan klien yang telah dibuat untuk melakukan operasi selanjutnya... Gunakan titik akhir Alibaba Gov Cloud
Kode contoh berikut menunjukkan cara mengonfigurasi OSSClient menggunakan titik akhir Gov Cloud.
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK Alibaba Cloud OSS guna menyederhanakan penggunaan selanjutnya.
var region = "cn-north-2-gov-1"; // Wajib. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China North 2 (Ali Gov 1), atur region menjadi cn-north-2-gov-1.
// Wajib. Titik akhir internal wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China North 2 (Ali Gov 1), atur endpoint menjadi 'https://oss-cn-north-2-gov-1-internal.aliyuncs.com'.
// Untuk menggunakan protokol HTTP, atur endpoint menjadi 'http://oss-cn-north-2-gov-1-internal.aliyuncs.com'.
var endpoint = "https://oss-cn-north-2-gov-1-internal.aliyuncs.com";
// Muat konfigurasi default SDK OSS. Konfigurasi ini secara otomatis membaca informasi kredensial, seperti pasangan AccessKey, dari variabel lingkungan.
var cfg = OSS.Configuration.LoadDefault();
// Secara eksplisit tentukan bahwa variabel lingkungan digunakan untuk memperoleh kredensial verifikasi identitas. Formatnya adalah OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// Atur wilayah bucket.
cfg.Region = region;
// Jika titik akhir ditentukan, titik akhir default akan ditimpa.
if (endpoint != null)
{
cfg.Endpoint = endpoint;
}
// Buat instance klien OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);
// Gunakan klien yang telah dibuat untuk melakukan operasi selanjutnya... Konfigurasi kredensial akses
OSS menyediakan beberapa metode untuk menginisialisasi kredensial. Pilih metode berdasarkan kebutuhan autentikasi dan otorisasi Anda.
Gunakan pasangan AccessKey pengguna RAM
Anda dapat menggunakan pasangan AccessKey (ID AccessKey dan Rahasia AccessKey) akun Alibaba Cloud atau pengguna RAM untuk menginisialisasi penyedia kredensial. Metode ini cocok jika aplikasi Anda diterapkan di lingkungan aman dan stabil, memerlukan akses jangka panjang ke sumber daya OSS, dan tidak memerlukan rotasi kredensial yang sering. Namun, metode ini mengharuskan Anda memelihara pasangan AccessKey secara manual, yang menimbulkan risiko keamanan dan meningkatkan kompleksitas pemeliharaan.
Akun Alibaba Cloud memiliki izin penuh atas semua sumber daya. Jika pasangan AccessKey akun Alibaba Cloud Anda bocor, sistem Anda akan menghadapi risiko keamanan yang signifikan. Jangan gunakan pasangan AccessKey akun Alibaba Cloud. Sebagai gantinya, gunakan pasangan AccessKey pengguna RAM yang telah diberikan izin minimum yang diperlukan.
Untuk informasi selengkapnya tentang cara membuat pasangan AccessKey untuk pengguna RAM, lihat Buat pasangan AccessKey. ID AccessKey dan Rahasia AccessKey pengguna RAM hanya ditampilkan saat pasangan AccessKey dibuat. Anda harus menyimpan pasangan AccessKey tersebut saat membuatnya. Jika Anda lupa pasangan AccessKey tersebut, Anda harus membuat yang baru.
Variabel lingkungan
Konfigurasikan variabel lingkungan menggunakan pasangan AccessKey pengguna RAM.
Linux
Jalankan perintah berikut di CLI untuk menambahkan konfigurasi variabel lingkungan ke file
~/.bashrc:echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrcTerapkan perubahan tersebut.
source ~/.bashrcPeriksa apakah variabel lingkungan telah berlaku:
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
macOS
Jalankan perintah berikut di terminal untuk melihat jenis shell default:
echo $SHELLKonfigurasikan variabel lingkungan berdasarkan jenis shell default.
Zsh
Jalankan perintah berikut untuk menambahkan konfigurasi variabel lingkungan ke file
~/.zshrc:echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrcTerapkan perubahan tersebut.
source ~/.zshrcPeriksa apakah variabel lingkungan telah berlaku:
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
Bash
Jalankan perintah berikut untuk menambahkan konfigurasi variabel lingkungan ke file
~/.bash_profile:echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profileTerapkan perubahan tersebut.
source ~/.bash_profilePeriksa apakah variabel lingkungan telah berlaku:
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
Windows
CMD
Jalankan perintah berikut di CMD:
setx OSS_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID" setx OSS_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"Periksa apakah variabel lingkungan berlaku:
echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET%
PowerShell
Jalankan perintah berikut di PowerShell:
[Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)Periksa apakah variabel lingkungan berlaku:
[Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
Setelah mengubah variabel lingkungan sistem, restart atau refresh lingkungan kompilasi dan runtime Anda. Lingkungan tersebut mencakup IDE, antarmuka baris perintah, aplikasi desktop lainnya, dan layanan backend. Hal ini memastikan bahwa variabel lingkungan sistem terbaru dimuat.
Teruskan informasi kredensial menggunakan variabel lingkungan.
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK Alibaba Cloud OSS guna menyederhanakan penggunaan selanjutnya. var region = "cn-hangzhou"; // Wajib. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region menjadi cn-hangzhou. var endpoint = null as string; // Opsional. Titik akhir yang digunakan untuk mengakses OSS. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com. // Muat konfigurasi default SDK OSS. Konfigurasi ini secara otomatis membaca informasi kredensial, seperti pasangan AccessKey, dari variabel lingkungan. var cfg = OSS.Configuration.LoadDefault(); // Secara eksplisit tentukan bahwa variabel lingkungan digunakan untuk memperoleh kredensial verifikasi identitas. Formatnya adalah OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET. cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider(); // Atur wilayah bucket. cfg.Region = region; // Jika titik akhir ditentukan, titik akhir default akan ditimpa. if(endpoint != null) { cfg.Endpoint = endpoint; } // Buat instance klien OSS berdasarkan konfigurasi tersebut. using var client = new OSS.Client(cfg);
Kredensial statis
Kode contoh berikut menunjukkan cara menyematkan kredensial akses dengan secara eksplisit mengatur pasangan AccessKey.
Jangan menyematkan kredensial akses dalam aplikasi di lingkungan produksi. Metode ini hanya untuk tujuan pengujian.
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK Alibaba Cloud OSS guna menyederhanakan penggunaan selanjutnya.
var region = "cn-hangzhou"; // Wajib. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region menjadi cn-hangzhou.
var endpoint = null as string; // Opsional. Titik akhir yang digunakan untuk mengakses OSS. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com.
var cfg = OSS.Configuration.LoadDefault();
// Tentukan ID AccessKey dan Rahasia AccessKey pengguna RAM.
var access_key_id = "yourAccessKeyId";
var access_key_secret = "yourAccessKeySecret";
// Buat penyedia kredensial statis dan secara eksplisit atur ID AccessKey dan Rahasia AccessKey pengguna RAM.
cfg.CredentialsProvider = new OSS.Credentials.StaticCredentialsProvider(access_key_id,access_key_secret);
// Atur wilayah bucket.
cfg.Region = region;
// Jika titik akhir ditentukan, titik akhir default akan ditimpa.
if(endpoint != null)
{
cfg.Endpoint = endpoint;
}
// Buat instance klien OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);Gunakan token STS
Jika aplikasi Anda memerlukan akses sementara ke OSS, Anda dapat menggunakan kredensial identitas sementara (ID AccessKey, Rahasia AccessKey, dan token keamanan) yang diperoleh dari Security Token Service (STS) untuk menginisialisasi penyedia kredensial. Namun, metode ini mengharuskan Anda memelihara token STS secara manual, yang menimbulkan risiko keamanan dan meningkatkan kompleksitas pemeliharaan. Selain itu, untuk mengakses OSS secara sementara beberapa kali, Anda harus merefresh token STS secara manual.
Untuk informasi tentang cara cepat memperoleh token STS dengan memanggil operasi OpenAPI, lihat AssumeRole.
Untuk informasi tentang cara memperoleh token STS menggunakan SDK, lihat Gunakan token STS untuk mengakses OSS.
Anda harus menentukan waktu kedaluwarsa saat membuat token STS. Token STS akan menjadi tidak valid dan tidak dapat digunakan setelah kedaluwarsa.
Untuk daftar titik akhir STS, lihat Endpoints.
Variabel lingkungan
Atur variabel lingkungan menggunakan kredensial identitas sementara.
Mac OS X/Linux/Unix
PeringatanGunakan kredensial identitas sementara (ID AccessKey, Rahasia AccessKey, dan token keamanan) yang diperoleh dari STS, bukan pasangan AccessKey pengguna RAM.
ID AccessKey yang diperoleh dari STS diawali dengan `STS.`, misalnya, `STS.L4aBSCSJVMuKg5U1****`.
export OSS_ACCESS_KEY_ID=<STS_ACCESS_KEY_ID> export OSS_ACCESS_KEY_SECRET=<STS_ACCESS_KEY_SECRET> export OSS_SESSION_TOKEN=<STS_SECURITY_TOKEN>Windows
PeringatanGunakan kredensial identitas sementara (ID AccessKey, Rahasia AccessKey, dan token keamanan) yang diperoleh dari STS, bukan pasangan AccessKey pengguna RAM.
ID AccessKey yang diperoleh dari STS diawali dengan `STS.`, misalnya, `STS.L4aBSCSJVMuKg5U1****`.
set OSS_ACCESS_KEY_ID=<STS_ACCESS_KEY_ID> set OSS_ACCESS_KEY_SECRET=<STS_ACCESS_KEY_SECRET> set OSS_SESSION_TOKEN=<STS_SECURITY_TOKEN>Teruskan informasi kredensial menggunakan variabel lingkungan.
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK Alibaba Cloud OSS guna menyederhanakan penggunaan selanjutnya. var region = "cn-hangzhou"; // Wajib. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region menjadi cn-hangzhou. var endpoint = null as string; // Opsional. Titik akhir yang digunakan untuk mengakses OSS. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com. // Muat konfigurasi default SDK OSS. Konfigurasi ini secara otomatis membaca informasi kredensial, seperti pasangan AccessKey, dari variabel lingkungan. var cfg = OSS.Configuration.LoadDefault(); // Secara eksplisit tentukan bahwa variabel lingkungan digunakan untuk memperoleh kredensial verifikasi identitas. Formatnya adalah OSS_ACCESS_KEY_ID, OSS_ACCESS_KEY_SECRET, dan OSS_SESSION_TOKEN. cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider(); // Atur wilayah bucket. cfg.Region = region; // Jika titik akhir ditentukan, titik akhir default akan ditimpa. if(endpoint != null) { cfg.Endpoint = endpoint; } // Buat instance klien OSS berdasarkan konfigurasi tersebut. using var client = new OSS.Client(cfg);
Kredensial statis
Kode contoh berikut menunjukkan cara menyematkan kredensial akses dengan secara eksplisit mengatur pasangan AccessKey sementara.
Jangan menyematkan kredensial akses dalam aplikasi di lingkungan produksi. Metode ini hanya untuk tujuan pengujian.
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK Alibaba Cloud OSS guna menyederhanakan penggunaan selanjutnya.
var region = "cn-hangzhou"; // Wajib. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region menjadi cn-hangzhou.
var endpoint = null as string; // Opsional. Titik akhir yang digunakan untuk mengakses OSS. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com.
var cfg = OSS.Configuration.LoadDefault();
// Tentukan ID AccessKey sementara dan Rahasia AccessKey sementara, bukan ID AccessKey dan Rahasia AccessKey akun Alibaba Cloud.
// Perhatikan bahwa ID AccessKey yang diperoleh dari STS diawali dengan STS, seperti yang ditunjukkan dalam kode berikut.
var access_key_id = "STS.****************";
var access_key_secret = "yourAccessKeySecret";
// Tentukan token STS yang diperoleh.
var securityToken = "yourSecurityToken";
// Buat penyedia kredensial statis dan secara eksplisit atur ID AccessKey sementara, Rahasia AccessKey sementara, dan token STS.
cfg.CredentialsProvider = new OSS.Credentials.StaticCredentialsProvider(access_key_id, access_key_secret, securityToken);
// Atur wilayah bucket.
cfg.Region = region;
// Jika titik akhir ditentukan, titik akhir default akan ditimpa.
if(endpoint != null)
{
cfg.Endpoint = endpoint;
}
// Buat instance klien OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);Gunakan ARN peran RAM
Jika aplikasi Anda memerlukan otorisasi untuk mengakses OSS, seperti mengakses OSS lintas akun Alibaba Cloud yang berbeda, Anda dapat menggunakan Nama Sumber Daya Alibaba Cloud (ARN) peran RAM untuk menginisialisasi penyedia kredensial. Implementasi dasar metode ini menggunakan token STS. Saat Anda menentukan ARN peran RAM, alat Credentials memperoleh token STS dari STS. Alat ini juga memanggil operasi AssumeRole untuk meminta token STS baru sebelum sesi saat ini kedaluwarsa. Selain itu, Anda dapat memberikan nilai pada parameter policy untuk membatasi peran RAM ke set izin yang lebih kecil.
Akun Alibaba Cloud memiliki izin penuh atas semua sumber daya. Jika pasangan AccessKey akun Alibaba Cloud Anda bocor, sistem Anda akan menghadapi risiko keamanan yang signifikan. Jangan gunakan pasangan AccessKey akun Alibaba Cloud. Sebagai gantinya, gunakan pasangan AccessKey pengguna RAM yang telah diberikan izin minimum yang diperlukan.
Untuk informasi selengkapnya tentang cara membuat pasangan AccessKey untuk pengguna RAM, lihat Buat pasangan AccessKey. ID AccessKey dan Rahasia AccessKey pengguna RAM hanya ditampilkan saat pasangan AccessKey dibuat. Anda harus menyimpan pasangan AccessKey tersebut saat membuatnya. Jika Anda lupa pasangan AccessKey tersebut, Anda harus membuat yang baru.
Untuk informasi selengkapnya tentang cara memperoleh ARN peran RAM, lihat CreateRole.
Tambahkan dependensi Aliyun.Credentials.
dotnet add package Aliyun.Credentials --source https://api.nuget.org/v3/index.jsonKonfigurasikan kredensial akses menggunakan pasangan AccessKey dan ARN peran RAM.
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK Alibaba Cloud OSS guna menyederhanakan penggunaan selanjutnya. var region = "cn-hangzhou"; // Wajib. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region menjadi cn-hangzhou. var endpoint = null as string; // Opsional. Titik akhir yang digunakan untuk mengakses OSS. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com. // Konfigurasi kredensial Alibaba Cloud - Gunakan ARN peran RAM. // Untuk informasi selengkapnya tentang jenis kredensial, lihat https://github.com/aliyun/credentials-csharp. var credConfig = new Aliyun.Credentials.Models.Config() { // Tentukan jenis kredensial sebagai ARN peran RAM. Type = "ram_role_arn", // Baca ID AccessKey dari variabel lingkungan. AccessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID"), // Baca Rahasia AccessKey dari variabel lingkungan. AccessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET"), // ARN peran RAM. Format: acs:ram::USER_Id:role/ROLE_NAME. // Anda juga dapat mengatur parameter ini menggunakan variabel lingkungan ALIBABA_CLOUD_ROLE_ARN. RoleArn = "acs:ram::***************:role/******", // Nama sesi peran. Parameter ini digunakan untuk mengidentifikasi sesi saat ini. RoleSessionName = "<RoleSessionName>", // Opsional. Kebijakan izin yang akan diasumsikan. Policy = "<Policy>", // Opsional. Periode validitas token STS dalam detik. RoleSessionExpiration = 3600, }; // Buat instance klien kredensial untuk memperoleh kredensial akses sementara. var credClient = new Aliyun.Credentials.Client(credConfig); // Konversikan kredensial umum menjadi penyedia kredensial yang diperlukan oleh SDK OSS. var credentialsProvider = new OSS.Credentials.CredentialsProvideFunc(() => { // Peroleh kredensial sementara. var credential = credClient.GetCredential(); // Buat objek kredensial yang diperlukan oleh SDK OSS. return new OSS.Credentials.Credentials( credential.AccessKeyId, // ID AccessKey sementara. credential.AccessKeySecret, // Rahasia AccessKey sementara. credential.SecurityToken); // Token STS. }); // Muat konfigurasi default SDK OSS. // Secara default, informasi kredensial dimuat dari variabel lingkungan. Dalam contoh ini, ditimpa oleh kredensial kustom. var cfg = OSS.Configuration.LoadDefault(); // Atur wilayah OSS. cfg.Region = region; // Atur penyedia kredensial kustom. cfg.CredentialsProvider = credentialsProvider; // Jika titik akhir kustom ditentukan, pengaturan default akan ditimpa. if (endpoint != null) { cfg.Endpoint = endpoint; } // Buat instance klien OSS berdasarkan konfigurasi tersebut. using var client = new OSS.Client(cfg); // Buat paginator untuk operasi ListBuckets. // Ini digunakan untuk memperoleh semua bucket OSS di bawah akun saat ini. var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest()); // Iterasi secara asinkron melalui hasil terpaginasi bucket. Console.WriteLine("Buckets:"); await foreach (var page in paginator.IterPageAsync()) { // Telusuri bucket di setiap halaman. foreach (var bucket in page.Buckets ?? []) { // Keluarkan informasi bucket: nama, kelas penyimpanan, dan lokasi. Console.WriteLine($"Bucket:{bucket.Name}, {bucket.StorageClass}, {bucket.Location}"); } }
Gunakan peran RAM ECS
Jika aplikasi Anda berjalan di instans ECS, instans ECI, atau node pekerja Container Service for Kubernetes, kami menyarankan Anda menggunakan peran RAM ECS untuk menginisialisasi penyedia kredensial. Implementasi dasar metode ini menggunakan token STS. Peran RAM ECS memungkinkan Anda mengaitkan peran dengan instans ECS, instans ECI, atau node pekerja Container Service for Kubernetes untuk secara otomatis merefresh token STS di dalam instans. Metode ini menghilangkan risiko keamanan dan beban pemeliharaan dari pengelolaan manual pasangan AccessKey atau token STS karena Anda tidak perlu menyediakannya. Untuk informasi selengkapnya tentang cara memperoleh peran RAM ECS, lihat CreateRole.
Tambahkan dependensi Aliyun.Credentials.
dotnet add package Aliyun.Credentials --source https://api.nuget.org/v3/index.jsonKonfigurasikan kredensial akses menggunakan peran RAM ECS.
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK Alibaba Cloud OSS guna menyederhanakan penggunaan selanjutnya. using Aliyun.Credentials.Models; var region = "cn-hangzhou"; // Wajib. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region menjadi cn-hangzhou. var endpoint = null as string; // Opsional. Titik akhir yang digunakan untuk mengakses OSS. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com. // Buat konfigurasi kredensial dan gunakan peran RAM ECS untuk autentikasi. var credConfig = new Aliyun.Credentials.Models.Config() { // Jenis kredensial. Type = "ecs_ram_role", // Nama peran. Parameter ini opsional. Jika Anda tidak menentukan parameter ini, nama peran akan diperoleh secara otomatis. Kami menyarankan Anda mengatur parameter ini untuk mengurangi permintaan. RoleName = "<RoleName>" }; // Buat klien kredensial untuk memperoleh kredensial akses sementara. var credClient = new Aliyun.Credentials.Client(credConfig); // Konversikan kredensial umum menjadi penyedia kredensial yang diperlukan oleh SDK OSS. var credentialsProvider = new OSS.Credentials.CredentialsProviderFunc(() => { // Peroleh kredensial sementara. var credential = credClient.GetCredential(); // Buat objek kredensial yang diperlukan oleh SDK OSS. return new OSS.Credentials.Credentials( credential.AccessKeyId, // ID AccessKey sementara. credential.AccessKeySecret, // Rahasia AccessKey sementara. credential.SecurityToken); // Token STS. }); // Muat konfigurasi default klien OSS. var cfg = OSS.Configuration.LoadDefault(); // Atur wilayah OSS. cfg.Region = region; // Atur penyedia kredensial kustom. cfg.CredentialsProvider = credentialsProvider; // Jika titik akhir kustom ditentukan, pengaturan default akan ditimpa. if (endpoint != null) { cfg.Endpoint = endpoint; } // Buat instance klien OSS berdasarkan konfigurasi tersebut. using var client = new OSS.Client(cfg); // Peroleh semua bucket OSS di bawah akun peran saat ini. var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest()); // Iterasi secara asinkron melalui hasil terpaginasi bucket. Console.WriteLine("Buckets:"); await foreach (var page in paginator.IterPageAsync()) { // Telusuri bucket di setiap halaman. foreach (var bucket in page.Buckets ?? []) { // Keluarkan informasi bucket: nama, kelas penyimpanan, dan lokasi. Console.WriteLine($"Bucket:{bucket.Name}, {bucket.StorageClass}, {bucket.Location}"); } }
Gunakan ARN peran OIDC
Setelah Anda mengonfigurasi peran RAM untuk node pekerja di Container Service for Kubernetes, aplikasi dalam pod pada node tersebut dapat memperoleh token STS peran terkait melalui layanan meta global, mirip dengan aplikasi yang diterapkan di ECS. Namun, jika aplikasi tidak tepercaya diterapkan di kluster kontainer, Anda mungkin tidak ingin aplikasi tersebut memperoleh token STS peran RAM instans yang terkait dengan node pekerja melalui layanan meta global. Contoh aplikasi tidak tepercaya adalah aplikasi yang diajukan oleh pelanggan Anda yang kodenya tidak terbuka bagi Anda. Untuk menghindari kompromi keamanan sumber daya cloud Anda sekaligus memungkinkan aplikasi tidak tepercaya ini memperoleh token STS yang diperlukan secara aman dan meminimalkan izin di tingkat aplikasi, Anda dapat menggunakan fitur RAM Roles for Service Accounts (RRSA). Implementasi dasar metode ini menggunakan token STS. Kluster kontainer Alibaba Cloud membuat dan memasang file token OpenID Connect (OIDC) akun layanan yang sesuai untuk setiap pod aplikasi dan menyuntikkan informasi konfigurasi terkait ke dalam variabel lingkungan. Alat Credentials mengambil informasi konfigurasi dari variabel lingkungan dan memanggil operasi AssumeRoleWithOIDC STS untuk memperoleh token STS peran yang terikat. Metode ini menghilangkan risiko keamanan dan beban pemeliharaan dari pengelolaan manual pasangan AccessKey atau token STS karena Anda tidak perlu menyediakannya. Untuk informasi selengkapnya, lihat Isolasi izin Pod berdasarkan RRSA.
Tambahkan dependensi Aliyun.Credentials.
dotnet add package Aliyun.Credentials --source https://api.nuget.org/v3/index.json
Konfigurasikan kredensial akses menggunakan ARN peran OIDC.
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK Alibaba Cloud OSS guna menyederhanakan penggunaan selanjutnya. using Aliyun.Credentials.Models; var region = "cn-hangzhou"; // Wajib. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region menjadi cn-hangzhou. var endpoint = null as string; // Opsional. Titik akhir yang digunakan untuk mengakses OSS. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com. // Buat konfigurasi kredensial dan gunakan ARN peran OIDC untuk autentikasi. var credConfig = new Aliyun.Credentials.Models.Config() { // Jenis kredensial. Type = "oidc_role_arn", // Format: acs:ram::USER_Id:role/ROLE_NAME. // roleArn opsional. Anda dapat mengatur variabel lingkungan ALIBABA_CLOUD_ROLE_ARN sebagai gantinya. RoleArn = "<RoleArn>", // Format: acs:ram::USER_Id:oidc-provider/OIDC_IdP_name. // OIDCProviderArn opsional. Anda dapat mengatur variabel lingkungan ALIBABA_CLOUD_OIDC_PROVIDER_ARN sebagai gantinya. OIDCProviderArn = "<OIDCProviderArn>", // Format: path. // OIDCTokenFilePath opsional. Anda dapat mengatur variabel lingkungan ALIBABA_CLOUD_OIDC_TOKEN_FILE sebagai gantinya. OIDCTokenFilePath = "/Users/xxx/xxx", // Nama sesi peran. RoleSessionName = "<RoleSessionName>", // Opsional. Kebijakan izin yang akan diasumsikan. Policy = "<Policy>", // Opsional. Periode validitas token STS. RoleSessionExpiration = 3600, }; // Buat klien kredensial untuk memperoleh kredensial akses sementara. var credClient = new Aliyun.Credentials.Client(credConfig); // Konversikan kredensial umum menjadi penyedia kredensial yang diperlukan oleh SDK OSS. var credentialsProvider = new OSS.Credentials.CredentialsProvideFunc(() => { // Peroleh kredensial sementara. var credential = credClient.GetCredential(); // Buat objek kredensial yang diperlukan oleh SDK OSS. return new OSS.Credentials.Credentials( credential.AccessKeyId, // ID AccessKey sementara. credential.AccessKeySecret, // Rahasia AccessKey sementara. credential.SecurityToken); // Token STS. }); // Muat konfigurasi default klien OSS. var cfg = OSS.Configuration.LoadDefault(); // Atur wilayah OSS. cfg.Region = region; // Atur penyedia kredensial kustom. cfg.CredentialsProvider = credentialsProvider; // Jika titik akhir kustom ditentukan, pengaturan default akan ditimpa. if (endpoint != null) { cfg.Endpoint = endpoint; } // Buat instance klien OSS berdasarkan konfigurasi tersebut. using var client = new OSS.Client(cfg); // Peroleh semua bucket OSS di bawah akun peran saat ini. var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest()); // Iterasi secara asinkron melalui hasil terpaginasi bucket. Console.WriteLine("Buckets:"); await foreach (var page in paginator.IterPageAsync()) { // Telusuri bucket di setiap halaman. foreach (var bucket in page.Buckets ?? []) { // Keluarkan informasi bucket: nama, kelas penyimpanan, dan lokasi. Console.WriteLine($"Bucket:{bucket.Name}, {bucket.StorageClass}, {bucket.Location}"); } }
Gunakan kredensial akses kustom
Jika metode konfigurasi kredensial di atas tidak memenuhi kebutuhan Anda, Anda dapat mengimplementasikan metode kustom untuk memperoleh kredensial.
Gunakan antarmuka Credentials.CredentialsProvideFunc
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK Alibaba Cloud OSS guna menyederhanakan penggunaan selanjutnya.
var region = "cn-hangzhou"; // Wajib. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region menjadi cn-hangzhou.
var endpoint = null as string; // Opsional. Titik akhir yang digunakan untuk mengakses OSS. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com.
// Secara eksplisit atur kredensial akses. Ini hanya untuk tujuan demonstrasi. Dalam proyek aktual, Anda dapat memperoleh kredensial dari variabel lingkungan.
var AccessKeyId = "your AccessKeyId"; // Wajib. ID AccessKey pengguna RAM atau ID AccessKey sementara yang diperoleh dari STS.
var AccessKeySecret = "your AccessKeySecret"; // Wajib. Rahasia AccessKey pengguna RAM atau Rahasia AccessKey sementara yang diperoleh dari STS.
// var SecurityToken = "your STS Token"; // Opsional. Anda dapat mengonfigurasi variabel ini jika menggunakan kredensial akses sementara.
// Konversikan kredensial umum menjadi penyedia kredensial yang diperlukan oleh SDK OSS.
var credentialsProvider = new OSS.Credentials.CredentialsProvideFunc(() =>
{
// Gunakan kredensial jangka panjang untuk membuat objek kredensial yang diperlukan oleh SDK OSS.
return new OSS.Credentials.Credentials(
AccessKeyId, // ID AccessKey pengguna RAM.
AccessKeySecret); // Rahasia AccessKey pengguna RAM.
// Gunakan kredensial akses sementara untuk membuat objek kredensial yang diperlukan oleh SDK OSS.
// return new OSS.Credentials.Credentials(
// AccessKeyId, // ID AccessKey sementara.
// AccessKeySecret, // Rahasia AccessKey sementara.
// SecurityToken); // Token STS.
});
// Muat konfigurasi default klien OSS.
var cfg = OSS.Configuration.LoadDefault();
// Atur wilayah OSS.
cfg.Region = region;
// Atur penyedia kredensial kustom.
cfg.CredentialsProvider = credentialsProvider;
// Jika titik akhir kustom ditentukan, pengaturan default akan ditimpa.
if (endpoint != null)
{
cfg.Endpoint = endpoint;
}
// Buat instance klien OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);
// Peroleh semua bucket OSS di bawah akun peran saat ini.
var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest());
// Iterasi secara asinkron melalui hasil terpaginasi bucket.
Console.WriteLine("Buckets:");
await foreach (var page in paginator.IterPageAsync())
{
// Telusuri bucket di setiap halaman.
foreach (var bucket in page.Buckets ?? [])
{
// Keluarkan informasi bucket: nama, kelas penyimpanan, dan lokasi.
Console.WriteLine($"Bucket:{bucket.Name}, {bucket.StorageClass}, {bucket.Location}");
}
}Kode contoh
OSS SDK for C# V2 menyediakan berbagai kode contoh untuk referensi Anda.
Contoh | File contoh di GitHub |
Unggah objek menggunakan URL yang ditandatangani (C# SDK V2) | |