All Products
Search
Document Center

Object Storage Service:OSS SDK for C# V2

Last Updated:Aug 04, 2026

GitHub | SDK Releases

Integrasi cepat

Integrasikan OSS SDK for C# V2:

Prasyarat

  • Memerlukan .NET Framework 4.7.1 atau versi yang lebih baru.

  • Mendukung .NET Standard 2.0 dan versi yang lebih baru.

  • Mendukung .NET 5.0 dan versi yang lebih baru.

  • Untuk menginstal atau memperbarui lingkungan .NET Anda:

    • Untuk .NET Framework: Kunjungi situs web resmi Microsoft untuk mengunduh dan menginstal .NET Framework 4.7.1 atau versi yang lebih baru.

    • Untuk .NET Standard: Pastikan implementasi .NET yang kompatibel telah diinstal (.NET Framework, .NET, atau platform pendukung lainnya).

    • Untuk .NET: Kunjungi situs web resmi .NET untuk mengunduh dan menginstal .NET 5.0 atau versi yang lebih baru.

Instal SDK

Gunakan OSS SDK for C# V2 terbaru agar kode contoh berjalan sesuai harapan.

Instal menggunakan NuGet

  • Periksa apakah NuGet sudah terinstal:

    • Pastikan NuGet telah diinstal di Visual Studio. Jika belum, buka Visual Studio Installer melalui Tools > Get Tools and Features, lalu pilih workload .NET desktop development atau ASP.NET and web development.

  • 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.

    • Pilih AlibabaCloud.OSS.V2 dari hasil pencarian. Pastikan Anda memilih versi stabil terbaru.

    • Klik Install dan tunggu hingga proses instalasi selesai.

  • Verifikasi instalasi:

    • Setelah instalasi, AlibabaCloud.OSS.V2 muncul di bawah References dalam Solution Explorer.

Instal dengan mengimpor proyek

  • Clone repositori GitHub:

    • Buka command prompt atau Git Bash dan 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 dan 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 dan pilih Add > Reference....

    • Pada kotak dialog yang muncul, buka tab Projects, temukan dan pilih proyek AlibabaCloud.OSS.V2, lalu klik OK.

Konfigurasi kredensial akses

Konfigurasikan kredensial akses menggunakan pasangan AccessKey pengguna RAM.

  1. Di Konsol RAM, buat pengguna RAM dengan Permanent AccessKey Pair. Simpan pasangan AccessKey tersebut dan berikan izin AliyunOSSFullAccess kepada pengguna RAM.

  2. Konfigurasikan variabel lingkungan menggunakan pasangan AccessKey pengguna RAM.

    Linux

    1. 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'" >> ~/.bashrc
      1. Jalankan perintah berikut untuk menerapkan konfigurasi.

        source ~/.bashrc
      2. Jalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah dikonfigurasi.

        echo $OSS_ACCESS_KEY_ID
        echo $OSS_ACCESS_KEY_SECRET

    macOS

    1. Jalankan perintah berikut di terminal untuk memeriksa jenis shell default.

      echo $SHELL
      1. Ikuti langkah-langkah sesuai jenis shell default Anda.

        Zsh

        1. 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'" >> ~/.zshrc
        2. Jalankan perintah berikut untuk menerapkan konfigurasi.

          source ~/.zshrc
        3. Jalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah dikonfigurasi.

          echo $OSS_ACCESS_KEY_ID
          echo $OSS_ACCESS_KEY_SECRET

        Bash

        1. 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_profile
        2. Jalankan perintah berikut untuk menerapkan konfigurasi.

          source ~/.bash_profile
        3. Jalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah dikonfigurasi.

          echo $OSS_ACCESS_KEY_ID
          echo $OSS_ACCESS_KEY_SECRET

    Windows

    CMD

    1. Jalankan perintah berikut di Command Prompt.

      setx OSS_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID"
      setx OSS_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"
      1. Jalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah dikonfigurasi.

        echo %OSS_ACCESS_KEY_ID%
        echo %OSS_ACCESS_KEY_SECRET%

    PowerShell

    1. 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)
      1. 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 client

Inisialisasi OSSClient dengan wilayah dan titik akhir, lalu jalankan kode uji coba.

using System.Text; // Impor namespace System.Text untuk memproses pengkodean karakter, seperti string berkode UTF-8.
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk Alibaba Cloud OSS SDK 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 OSS SDK. 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 mendapatkan 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 instans client 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 array byte.
var content = "hello oss!";
// Konversi string menjadi array 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, 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.

Pengunggahan yang berhasil menghasilkan output berikut:

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 client

Konfigurasi client apa saja yang didukung?

Nama parameter

Deskripsi

Contoh

Region

(Wajib) Wilayah tempat permintaan dikirim.

Configuration.Region = "cn-hangzhou"

Endpoint

Titik akhir

Configuration.Endpoint = "oss-cn-hangzhou.aliyuncs.com"

RetryMaxAttempts

Jumlah maksimum percobaan ulang untuk permintaan yang gagal.

Configuration.RetryMaxAttempts = 5

Retryer

Implementasi retry untuk permintaan HTTP.

Configuration.Retryer = new Retry.DefaultRetryer()

HttpTransport

Klien HTTP kustom.

Configuration.HttpTransport = new HttpTransport()

CredentialsProvider

Tentukan kredensial akses (Wajib)

Configuration.CredentialsProvider = new EnvironmentVariableCredentialsProvider()

UsePathStyle

Menentukan apakah akan menggunakan akses gaya path. Secara default, akses gaya virtual-host digunakan.

Configuration.UsePathStyle = true

UseCName

Menentukan apakah akan menggunakan nama domain kustom untuk mengakses OSS. Nilai default adalah false.

Configuration.UseCName = true

ConnectTimeout

Periode timeout untuk membuat koneksi. Nilai default: 10 detik.

Configuration.ConnectTimeout = TimeSpan.FromSeconds(30)

ReadWriteTimeout

Periode timeout untuk membaca dan menulis data. Nilai default: 20 detik.

Configuration.ReadWriteTimeout = TimeSpan.FromMinutes(2)

InsecureSkipVerify

Menentukan apakah akan melewati verifikasi sertifikat SSL. Secara default, sertifikat SSL diverifikasi.

Configuration.InsecureSkipVerify = true

EnabledRedirect

Menentukan apakah akan mengaktifkan pengalihan HTTP. Secara default, pengalihan HTTP dinonaktifkan.

Configuration.EnabledRedirect = true

ProxyHost

Konfigurasi server proxy.

Configuration.ProxyHost = "http://proxy.example.com:8080"

SignatureVersion

Versi signature. Nilai default: v4.

Configuration.SignatureVersion = "v4"

DisableSsl

Menonaktifkan permintaan HTTPS. HTTPS diaktifkan secara default.

Configuration.DisableSsl = true

UseDualStackEndpoint

Menentukan apakah akan menggunakan titik akhir dual-stack. Nilai default adalah false.

Configuration.UseDualStackEndpoint = true

UseAccelerateEndpoint

Menentukan apakah akan menggunakan titik akhir percepatan. Nilai default adalah false.

Configuration.UseAccelerateEndpoint = true

UseInternalEndpoint

Menentukan apakah akan menggunakan titik akhir internal. Nilai default adalah false.

Configuration.UseInternalEndpoint = true

DisableUploadCrc64Check

Menonaktifkan pemeriksaan redundansi siklik 64-bit (CRC64) untuk pengunggahan. Secara default, pemeriksaan ini diaktifkan.

Configuration.DisableUploadCrc64Check = true

DisableDownloadCrc64Check

Menonaktifkan pemeriksaan CRC64 untuk pengunduhan. Secara default, pemeriksaan ini diaktifkan.

Configuration.DisableDownloadCrc64Check = true

AdditionalHeaders

Header permintaan tambahan yang akan ditandatangani. Parameter ini hanya berlaku untuk signature V4.

Configuration.AdditionalHeaders = new List<string> { "x-oss-meta-*" }

UserAgent

Menentukan informasi tambahan untuk User-Agent

Configuration.UserAgent = "MyApp/1.0"

Gunakan nama domain kustom

Objek yang diakses melalui titik akhir OSS default mungkin tidak dapat dipratinjau di browser. Petakan nama domain kustom untuk mengakses OSS agar memungkinkan pratinjau di browser dan akselerasi CDN.

using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk Alibaba Cloud OSS SDK 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 OSS SDK. 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 mendapatkan 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 instans client OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);

// Gunakan client yang telah dibuat untuk melakukan operasi selanjutnya...

Gunakan titik akhir internal

Gunakan titik akhir internal untuk mengakses OSS di wilayah yang sama, sehingga mengurangi biaya trafik dan meningkatkan kecepatan akses.

using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk Alibaba Cloud OSS SDK 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 OSS SDK. 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 mendapatkan 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 instans client OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);

// Gunakan client yang telah dibuat untuk melakukan operasi selanjutnya...

Gunakan titik akhir percepatan transfer

using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk Alibaba Cloud OSS SDK 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 OSS SDK. 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 mendapatkan 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 instans client OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);

// Gunakan client yang telah dibuat untuk melakukan operasi selanjutnya...	

Gunakan nama domain pribadi

using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk Alibaba Cloud OSS SDK 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 OSS SDK. 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 mendapatkan 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 instans client OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);

// Gunakan client yang telah dibuat untuk melakukan operasi selanjutnya...	

Gunakan titik akhir Alibaba Gov Cloud

Konfigurasikan OSSClient dengan titik akhir Gov Cloud:

using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk Alibaba Cloud OSS SDK 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 OSS SDK. 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 mendapatkan 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 instans client OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);

// Gunakan client yang telah dibuat untuk melakukan operasi selanjutnya...	

Konfigurasi kredensial akses

OSS mendukung beberapa metode inisialisasi kredensial. Pilih salah satu sesuai kebutuhan autentikasi Anda.

Memilih kredensial akses

Metode inisialisasi penyedia kredensial

Skenario

Apakah pasangan AccessKey atau token STS sebelumnya diperlukan

Kredensial dasar

Periode validitas kredensial

Metode rotasi atau refresh kredensial

Gunakan pasangan AccessKey pengguna RAM

Aplikasi yang diterapkan di lingkungan aman dan stabil yang tidak rentan terhadap serangan eksternal serta memerlukan akses jangka panjang ke layanan Alibaba Cloud tanpa perlu rotasi kredensial yang sering.

Ya

AccessKey

Jangka panjang

Rotasi manual

Gunakan token STS

Aplikasi yang diterapkan di lingkungan tidak tepercaya dan memerlukan kontrol atas periode validitas serta izin akses.

Ya

Security Token Service token

Sementara

Refresh manual

Gunakan ARN peran RAM

Aplikasi yang memerlukan otorisasi untuk mengakses layanan Alibaba Cloud, seperti aplikasi yang perlu mengakses layanan Alibaba Cloud lintas akun Alibaba Cloud.

Ya

Security Token Service token

Sementara

Auto-refresh

Gunakan peran RAM ECS

Aplikasi yang diterapkan pada instans ECS Alibaba Cloud, instans ECI, atau node pekerja Container Service for Kubernetes.

Tidak

Security Token Service token

Sementara

Auto-refresh

Gunakan ARN peran OIDC

Aplikasi tidak tepercaya yang diterapkan pada node pekerja Container Service for Kubernetes.

Tidak

Security Token Service token

Sementara

Auto-refresh

Gunakan kredensial akses kustom

Jika metode konfigurasi kredensial di atas tidak memenuhi kebutuhan Anda, Anda dapat menyesuaikan metode untuk mendapatkan kredensial.

Kustom

Kustom

Kustom

Kustom

Gunakan pasangan AccessKey pengguna RAM

Inisialisasi penyedia kredensial dengan pasangan AccessKey (ID AccessKey dan Rahasia AccessKey) pengguna RAM. Metode ini paling cocok untuk lingkungan aman yang memerlukan akses OSS jangka panjang tanpa rotasi kredensial yang sering. Pemeliharaan pasangan AccessKey secara manual diperlukan.

Peringatan
  • Akun Alibaba Cloud memiliki izin penuh atas semua sumber daya. Kredensial yang bocor mengekspos sistem Anda terhadap risiko keamanan signifikan. Gunakan pasangan AccessKey pengguna RAM dengan izin minimum yang diperlukan sebagai gantinya.

  • ID AccessKey dan Rahasia AccessKey hanya ditampilkan saat pembuatan. Simpan segera — kredensial yang hilang tidak dapat dipulihkan. Buat pasangan AccessKey.

Variabel lingkungan

  1. Konfigurasikan variabel lingkungan menggunakan pasangan AccessKey pengguna RAM.

    Linux

    1. 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'" >> ~/.bashrc
      1. Terapkan perubahan.

        source ~/.bashrc
      2. Periksa apakah variabel lingkungan telah berlaku:

        echo $OSS_ACCESS_KEY_ID
        echo $OSS_ACCESS_KEY_SECRET

    macOS

    1. Jalankan perintah berikut di terminal untuk melihat jenis shell default:

      echo $SHELL
      1. Konfigurasikan variabel lingkungan berdasarkan jenis shell default.

        Zsh

        1. 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'" >> ~/.zshrc
        2. Terapkan perubahan.

          source ~/.zshrc
        3. Periksa apakah variabel lingkungan telah berlaku:

          echo $OSS_ACCESS_KEY_ID
          echo $OSS_ACCESS_KEY_SECRET

        Bash

        1. 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_profile
        2. Terapkan perubahan.

          source ~/.bash_profile
        3. Periksa apakah variabel lingkungan telah berlaku:

          echo $OSS_ACCESS_KEY_ID
          echo $OSS_ACCESS_KEY_SECRET

    Windows

    CMD

    1. Jalankan perintah berikut di CMD:

      setx OSS_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID"
      setx OSS_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"
      1. Periksa apakah variabel lingkungan berlaku:

        echo %OSS_ACCESS_KEY_ID%
        echo %OSS_ACCESS_KEY_SECRET%

    PowerShell

    1. 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)
      1. Periksa apakah variabel lingkungan berlaku:

        [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User)
        [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)

  2. Setelah memodifikasi variabel lingkungan sistem, restart IDE, CLI, dan lingkungan runtime lainnya untuk memuat nilai yang diperbarui.

  3. Teruskan informasi kredensial menggunakan variabel lingkungan.

    using OSS = AlibabaCloud.OSS.V2;  // Buat alias untuk Alibaba Cloud OSS SDK 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 OSS SDK. 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 mendapatkan 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 instans client OSS berdasarkan konfigurasi tersebut.
    using var client = new OSS.Client(cfg);

Kredensial statis

Hard-code kredensial akses dengan mengatur pasangan AccessKey secara langsung.

Peringatan

Jangan menyematkan kredensial akses dalam aplikasi di lingkungan produksi. Metode ini hanya untuk tujuan pengujian.

using OSS = AlibabaCloud.OSS.V2;  // Buat alias untuk Alibaba Cloud OSS SDK 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 atur secara eksplisit 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 instans client OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);

Gunakan token STS

Gunakan kredensial identitas sementara (ID AccessKey, Rahasia AccessKey, dan token keamanan) dari STS untuk menginisialisasi penyedia kredensial guna akses OSS sementara. Metode ini memerlukan pemeliharaan dan refresh token STS secara manual.

Penting
  • Dapatkan token STS dengan cepat dengan memanggil AssumeRole.

  • Dapatkan token STS menggunakan SDK: Gunakan token STS untuk mengakses OSS.

  • Anda harus menentukan waktu kedaluwarsa saat menghasilkan token STS. Token STS menjadi tidak valid dan tidak dapat digunakan setelah kedaluwarsa.

  • STS Endpoints.

Variabel lingkungan

  1. Atur variabel lingkungan menggunakan kredensial identitas sementara.

    Mac OS X/Linux/Unix

    Peringatan
    • Gunakan 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

    Peringatan
    • Gunakan 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>
  2. Teruskan informasi kredensial menggunakan variabel lingkungan.

    using OSS = AlibabaCloud.OSS.V2;  // Buat alias untuk Alibaba Cloud OSS SDK 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 OSS SDK. 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 mendapatkan 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 instans client OSS berdasarkan konfigurasi tersebut.
    using var client = new OSS.Client(cfg);

Kredensial statis

Hard-code kredensial akses dengan mengatur pasangan AccessKey sementara secara langsung.

Peringatan

Jangan menyematkan kredensial akses dalam aplikasi di lingkungan produksi. Metode ini hanya untuk tujuan pengujian.

using OSS = AlibabaCloud.OSS.V2;  // Buat alias untuk Alibaba Cloud OSS SDK 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, 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 atur secara eksplisit ID AccessKey sementara, Rahasia AccessKey, 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 instans client OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);

Gunakan ARN peran RAM

Gunakan ARN peran RAM untuk menginisialisasi penyedia kredensial guna akses OSS lintas akun. Tool Credentials secara otomatis mendapatkan dan merefresh token STS melalui operasi AssumeRole. Gunakan parameter policy untuk membatasi izin.

Penting
  • Akun Alibaba Cloud memiliki izin penuh atas semua sumber daya. Kredensial yang bocor mengekspos sistem Anda terhadap risiko keamanan signifikan. Gunakan pasangan AccessKey pengguna RAM dengan izin minimum yang diperlukan sebagai gantinya.

  • ID AccessKey dan Rahasia AccessKey hanya ditampilkan saat pembuatan. Simpan segera — kredensial yang hilang tidak dapat dipulihkan. Buat pasangan AccessKey.

  • Dapatkan ARN peran RAM: Buat peran RAM.

  1. Tambahkan dependensi Aliyun.Credentials.

    dotnet add package Aliyun.Credentials --source https://api.nuget.org/v3/index.json
  2. Konfigurasikan kredensial akses menggunakan pasangan AccessKey dan ARN peran RAM.

    using OSS = AlibabaCloud.OSS.V2;  // Buat alias untuk Alibaba Cloud OSS SDK 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 lebih lanjut 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 instans klien kredensial untuk mendapatkan kredensial akses sementara.
    var credClient = new Aliyun.Credentials.Client(credConfig);
    
    // Konversi kredensial umum menjadi penyedia kredensial yang diperlukan oleh OSS SDK.
    var credentialsProvider = new OSS.Credentials.CredentialsProviderFunc(() =>
    {
        // Dapatkan kredensial sementara.
        var credential = credClient.GetCredential();
    
        // Buat objek kredensial yang diperlukan oleh OSS SDK.
        return new OSS.Credentials.Credentials(
            credential.AccessKeyId,      // ID AccessKey sementara.
            credential.AccessKeySecret,  // Rahasia AccessKey sementara.
            credential.SecurityToken);   // Token STS.
    });
    
    // Muat konfigurasi default OSS SDK.
    // 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 instans client OSS berdasarkan konfigurasi tersebut.
    using var client = new OSS.Client(cfg);
    
    // Buat paginator untuk operasi ListBuckets.
    // Ini digunakan untuk mendapatkan semua bucket OSS di bawah akun saat ini.
    var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest());
    
    // Iterasi secara asinkron melalui hasil paginasi bucket.
    Console.WriteLine("Buckets:");
    await foreach (var page in paginator.IterPageAsync())
    {
        // Telusuri bucket pada 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

Untuk aplikasi pada instans ECS, instans ECI, atau node pekerja Container Service for Kubernetes, gunakan peran RAM ECS untuk menginisialisasi penyedia kredensial. Ini mengaitkan peran dengan instans atau node Container Service for Kubernetes untuk merefresh token STS secara otomatis tanpa manajemen kredensial manual. Buat peran RAM.

  1. Tambahkan dependensi Aliyun.Credentials.

    dotnet add package Aliyun.Credentials --source https://api.nuget.org/v3/index.json
  2. Konfigurasikan kredensial akses menggunakan peran RAM ECS.

    using OSS = AlibabaCloud.OSS.V2;  // Buat alias untuk Alibaba Cloud OSS SDK 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 tidak ditentukan, nama peran akan diperoleh secara otomatis. Kami menyarankan Anda mengatur parameter ini untuk mengurangi permintaan.
        RoleName = "<RoleName>"
    };
    
    // Buat klien kredensial untuk mendapatkan kredensial akses sementara.
    var credClient = new Aliyun.Credentials.Client(credConfig);
    
    // Konversi kredensial umum menjadi penyedia kredensial yang diperlukan oleh OSS SDK.
    var credentialsProvider = new OSS.Credentials.CredentialsProviderFunc(() =>
    {
        // Dapatkan kredensial sementara.
        var credential = credClient.GetCredential();
    
        // Buat objek kredensial yang diperlukan oleh OSS SDK.
        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 instans client OSS berdasarkan konfigurasi tersebut.
    using var client = new OSS.Client(cfg);
    
    // Dapatkan semua bucket OSS di bawah akun peran saat ini.
    var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest());
    
    // Iterasi secara asinkron melalui hasil paginasi bucket.
    Console.WriteLine("Buckets:");
    await foreach (var page in paginator.IterPageAsync())
    {
        // Telusuri bucket pada 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

Untuk aplikasi tidak tepercaya pada node pekerja Container Service for Kubernetes, gunakan RRSA (RAM Roles for Service Accounts) dengan ARN peran OIDC untuk mengisolasi izin tingkat pod. Kluster memasang file token OIDC ke setiap pod dan menyuntikkan konfigurasi ke variabel lingkungan. Tool Credentials memanggil AssumeRoleWithOIDC untuk mendapatkan token STS secara otomatis, sehingga menghilangkan manajemen kredensial manual. Isolasi izin Pod berdasarkan RRSA.

  1. Tambahkan dependensi Aliyun.Credentials.

    dotnet add package Aliyun.Credentials --source https://api.nuget.org/v3/index.json
  1. Konfigurasikan kredensial akses menggunakan ARN peran OIDC.

    using OSS = AlibabaCloud.OSS.V2;  // Buat alias untuk Alibaba Cloud OSS SDK 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 mendapatkan kredensial akses sementara.
    var credClient = new Aliyun.Credentials.Client(credConfig);
    
    // Konversi kredensial umum menjadi penyedia kredensial yang diperlukan oleh OSS SDK.
    var credentialsProvider = new OSS.Credentials.CredentialsProviderFunc(() =>
    {
        // Dapatkan kredensial sementara.
        var credential = credClient.GetCredential();
    
        // Buat objek kredensial yang diperlukan oleh OSS SDK.
        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 instans client OSS berdasarkan konfigurasi tersebut.
    using var client = new OSS.Client(cfg);
    
    // Dapatkan semua bucket OSS di bawah akun peran saat ini.
    var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest());
    
    // Iterasi secara asinkron melalui hasil paginasi bucket.
    Console.WriteLine("Buckets:");
    await foreach (var page in paginator.IterPageAsync())
    {
        // Telusuri bucket pada 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

Implementasikan penyedia kredensial kustom jika metode di atas tidak memenuhi kebutuhan Anda.

Gunakan kelas Credentials.CredentialsProviderFunc

using OSS = AlibabaCloud.OSS.V2;  // Buat alias untuk Alibaba Cloud OSS SDK 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.

// Atur secara eksplisit 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.

// Konversi kredensial umum menjadi penyedia kredensial yang diperlukan oleh OSS SDK.
var credentialsProvider = new OSS.Credentials.CredentialsProviderFunc(() =>
{
   
    // Gunakan kredensial jangka panjang untuk membuat objek kredensial yang diperlukan oleh OSS SDK. 
    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 OSS SDK. 
    // 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 instans client OSS berdasarkan konfigurasi tersebut.
using var client = new OSS.Client(cfg);

// Dapatkan semua bucket OSS di bawah akun peran saat ini.
var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest());

// Iterasi secara asinkron melalui hasil paginasi bucket.
Console.WriteLine("Buckets:");
await foreach (var page in paginator.IterPageAsync())
{
    // Telusuri bucket pada 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 kode contoh untuk operasi umum.

Contoh

File contoh di GitHub

Buat bucket (C# SDK V2)

PutBucket.cs

Daftar bucket (C# SDK V2)

ListBuckets.cs

Periksa apakah bucket ada (C# SDK V2)

IsBucketExist.cs

Dapatkan wilayah bucket (C# SDK V2)

GetBucketLocation.cs

Dapatkan informasi bucket (C# SDK V2)

GetBucketInfo.cs

Dapatkan kapasitas penyimpanan bucket (C# SDK V2)

GetBucketStat.cs

Hapus bucket (C# SDK V2)

DeleteBucket.cs

Upload sederhana (C# SDK V2)

PutObject.cs

Upload append (C# SDK V2)

AppendObject.cs

Upload multipart (C# SDK V2)

MultipartUpload.cs

Upload form (C# SDK V2)

PostObject.cs

Unggah objek menggunakan URL yang ditandatangani (C# SDK V2)

PresignPutObject.cs

Unduh objek ke memori (C# SDK V2)

GetObject.cs

Unduh objek ke file lokal (C# SDK V2)

GetObjectToFile.cs

Unduh objek menggunakan URL yang ditandatangani (C# SDK V2)

PresignGetObject.cs

Salin objek (C# SDK V2)

CopyObject.cs

Periksa apakah objek ada (C# SDK V2)

IsObjectExist.cs

Daftar objek (C# SDK V2)

ListObjects.cs

Hapus objek (C# SDK V2)

DeleteObject.cs

Kelola tautan simbolik (C# SDK V2)

Atur tag objek (C# SDK V2)

PutObjectTagging.cs

Dapatkan tag objek (C# SDK V2)

GetObjectTagging.cs

Hapus tag objek (C# SDK V2)

DeleteObjectTagging.cs

Kelola ACL bucket (C# SDK V2)

Kelola ACL objek (C# SDK V2)

Kelola pengendalian versi (C# SDK V2)

Pemrosesan sinkron (C# SDK V2)

ProcessObject.cs

Pemrosesan asinkron (C# SDK V2)

AsyncProcessObject.cs