迅速な統合
OSS SDK for C# 2.0 を統合する手順は次のとおりです。
環境準備
SDK は
.NET Framework 4.7.1以降をサポートしています。SDK は
.NET Standard 2.0以降をサポートしています。SDK は
.NET 5.0以降をサポートしています。必要な .NET 環境がない場合、またはバージョンが古い場合は、次の手順に従ってください。
.NET Framework の場合: Microsoft の公式サイトにアクセスし、.NET Framework 4.7.1 以降をダウンロードしてインストールしてください。
.NET Standard の場合:.NET Standard は、.NET Framework や .NET などのさまざまな .NET プラットフォームでサポートされている実装仕様です。互換性のある .NET 実装がインストールされていることを確認してください。
.NET の場合: 公式 .NET サイトから .NET 5.0 以降をダウンロードしてインストールします。
SDK のインストール
このトピックのサンプルコードが期待どおりに実行されるように、最新バージョンの OSS SDK for C# V2 を使用してください。
NuGet を使用したインストール
NuGet がインストールされているかの確認:
Visual Studio に NuGet パッケージマネージャーがインストールされていることを確認します。インストールされていない場合は、[ツール] -> [ツールと機能を取得] を選択して Visual Studio インストーラーを開きます。[ワークロード] タブで、[.NET デスクトップ開発] または [ASP.NET と Web 開発] を選択します。NuGet パッケージマネージャーは、これらのワークロードに自動的に含まれます。
プロジェクトを開く:
Visual Studio でプロジェクトを作成するか、既存のプロジェクトを開きます。
NuGet パッケージマネージャーを開く:
メニューバーで、[ツール] -> [NuGet パッケージマネージャー] -> [ソリューションの NuGet パッケージの管理] を選択します。
SDK の検索とインストール:
NuGet パッケージマネージャーの [参照] タブで、
AlibabaCloud.OSS.V2を検索します。検索結果で
AlibabaCloud.OSS.V2を見つけて選択します。最新の安定バージョンを選択していることを確認してください。[インストール] をクリックしてパッケージをインストールします。インストールが完了するまで待ちます。
インストールの確認:
インストールが完了すると、ソリューションエクスプローラーの [参照] の下に
AlibabaCloud.OSS.V2が表示されます。これで、プロジェクトで SDK が提供する機能を使用できます。
プロジェクトのインポートによるインストール
GitHub リポジトリのクローン:
コマンドプロンプトまたは Git Bash を開き、次のコマンドを実行してリポジトリをクローンします。
git clone https://github.com/aliyun/alibabacloud-oss-csharp-sdk-v2.git
ソリューションへのプロジェクトの追加:
Visual Studio で、ソリューションを右クリックし、[追加] -> [既存のプロジェクト...] を選択します。
クローンしたソースコードディレクトリに移動し、
AlibabaCloud.OSS.V2.csprojファイルを選択して、[開く] をクリックします。
プロジェクト参照の追加:
プロジェクトを右クリックし、[追加] -> [参照...] を選択します。
表示されるダイアログボックスで、[プロジェクト] タブに移動し、
AlibabaCloud.OSS.V2プロジェクトを選択して、[OK] をクリックします。
アクセス認証情報の設定
RAM ユーザーの AccessKey ペアを使用してアクセス認証情報を設定します。
RAM コンソールで、[永続的な AccessKey ペア] を使用する RAM ユーザーを作成し、AccessKey ペアを保存してから、RAM ユーザーに
AliyunOSSFullAccess権限を付与します。RAM ユーザーの AccessKey ペアを使用して環境変数を設定します。
Linux
コマンドラインインターフェイスで次のコマンドを実行して、環境変数の設定を
~/.bashrcファイルに追加します。echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc次のコマンドを実行して設定を適用します。
source ~/.bashrc次のコマンドを実行して、環境変数が設定されていることを確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
macOS
ターミナルで次のコマンドを実行して、デフォルトのシェルタイプを確認します。
echo $SHELLデフォルトのシェルタイプに応じた手順に従います。
Zsh
次のコマンドを実行して、環境変数の設定を
~/.zshrcファイルに追加します。echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc次のコマンドを実行して設定を適用します。
source ~/.zshrc次のコマンドを実行して、環境変数が設定されていることを確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
Bash
次のコマンドを実行して、環境変数の設定を
~/.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次のコマンドを実行して設定を適用します。
source ~/.bash_profile次のコマンドを実行して、環境変数が設定されていることを確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
Windows
CMD
コマンドプロンプトで次のコマンドを実行します。
setx OSS_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID" setx OSS_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"次のコマンドを実行して、環境変数が設定されていることを確認します。
echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET%
PowerShell
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)次のコマンドを実行して、環境変数が設定されていることを確認します。
[Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
クライアントの初期化
リージョンとエンドポイントに基づいて OSSClient を初期化し、テストコードを実行します。
using System.Text; // 文字コード (UTF-8 エンコード文字列など) を処理するために System.Text 名前空間をインポートします。
using OSS = AlibabaCloud.OSS.V2; // 後続の使用を簡略化するために、Alibaba Cloud OSS SDK のエイリアスを作成します。
var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。
var bucket = "your bucket name"; // 必須。宛先バケットの名前。
var endpoint = null as string; // 任意。OSS へのアクセスに使用されるエンドポイント。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var key = "your object key"; // 必須。アップロードするオブジェクトの名前。形式は folder/objectName です。
// OSS SDK のデフォルト設定を読み込みます。この設定は、環境変数から AccessKey ペアなどの認証情報を自動的に読み取ります。
var cfg = OSS.Configuration.LoadDefault();
// 環境変数を使用して ID 検証用の認証情報を取得することを明示的に指定します。形式は OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET です。
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// バケットのリージョンを設定します。
cfg.Region = region;
// エンドポイントが指定されている場合、デフォルトのエンドポイントは上書きされます。
if(endpoint != null)
{
cfg.Endpoint = endpoint;
}
// 設定に基づいて OSS クライアントインスタンスを作成します。
using var client = new OSS.Client(cfg);
// アップロードするオブジェクトのコンテンツ。サンプルコンテンツ:単純な文字列 "hello oss!"。実際のシナリオでは、コンテンツはファイルストリームまたはバイト配列になります。
var content = "hello oss!";
// 文字列を UTF-8 エンコードされたバイト配列に変換し、MemoryStream にラップします。
// MemoryStream はメモリ内のデータストリームを処理するために使用され、小さなファイルのアップロードに適しています。大きなファイルには FileStream を使用します。
var bodyStream = new MemoryStream(Encoding.UTF8.GetBytes(content));
// PutObjectAsync メソッドを呼び出して、オブジェクトを非同期にアップロードします。バケット、キー、および本文を含むリクエストオブジェクトを渡す必要があります。
// このメソッドは、bodyStream 内のデータを指定されたバケット内の指定されたキーパスにアップロードします。
var result = await client.PutObjectAsync(new OSS.Models.PutObjectRequest()
{
Bucket = bucket, // 宛先バケットの名前。
Key = key, // バケット内のオブジェクトの一意のキー。
Body = bodyStream // アップロードするコンテンツストリーム。この例では、メモリ内の文字列データです。
});
// アップロード結果を出力します。
Console.WriteLine("PutObject done"); // 操作が完了したことを示すメッセージ。
Console.WriteLine($"StatusCode: {result.StatusCode}"); // HTTP ステータスコード。
Console.WriteLine($"RequestId: {result.RequestId}"); // リクエスト ID。トラブルシューティングに使用されます。
Console.WriteLine("Response Headers:"); // レスポンスヘッダー情報。
result.Headers.ToList().ForEach(x => Console.WriteLine(x.Key + " : " + x.Value)); // すべてのレスポンスヘッダーを走査して出力します。コードを実行すると、次の結果が返されます。これは、ファイルが正常にアップロードされたことを示します。
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==クライアント設定
カスタムドメイン名の使用
デフォルトの OSS エンドポイントを使用してオブジェクトにアクセスすると、オブジェクトにアクセスできない、またはブラウザでプレビューできない場合があります。カスタムドメイン名をマッピングして OSS にアクセスできます。これにより、ブラウザでオブジェクトをプレビューしたり、CDN を使用してコンテンツ配信を高速化したりできます。
using OSS = AlibabaCloud.OSS.V2; // 後続の使用を簡略化するために、Alibaba Cloud OSS SDK のエイリアスを作成します。
var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。
var endpoint = "https://www.example-***.com"; // 必須。カスタムドメイン名。例:www.example-***.com。
// OSS SDK のデフォルト設定を読み込みます。この設定は、環境変数から AccessKey ペアなどの認証情報を自動的に読み取ります。
var cfg = OSS.Configuration.LoadDefault();
// 環境変数を使用して ID 検証用の認証情報を取得することを明示的に指定します。形式は OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET です。
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// バケットのリージョンを設定します。
cfg.Region = region;
// エンドポイントが指定されている場合、デフォルトのエンドポイントは上書きされます。
if (endpoint != null)
{
cfg.Endpoint = endpoint;
}
// CNAME オプションを有効にするには、値を true に設定する必要があることに注意してください。そうしないと、カスタムドメイン名を使用できません。
cfg.UseCName = true;
// 設定に基づいて OSS クライアントインスタンスを作成します。
using var client = new OSS.Client(cfg);
// 作成したクライアントを使用して後続の操作を実行します...内部エンドポイントの使用
内部エンドポイントを使用して、同じリージョン内の OSS リソースにアクセスできます。これにより、トラフィックコストを削減し、アクセス速度を向上させます。
using OSS = AlibabaCloud.OSS.V2; // 後続の使用を簡略化するために、Alibaba Cloud OSS SDK のエイリアスを作成します。
var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。
var endpoint = "https://oss-cn-hangzhou-internal.aliyuncs.com"; // 任意。OSS へのアクセスに使用される内部エンドポイント。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou-internal.aliyuncs.com に設定します。
// OSS SDK のデフォルト設定を読み込みます。この設定は、環境変数から AccessKey ペアなどの認証情報を自動的に読み取ります。
var cfg = OSS.Configuration.LoadDefault();
// 環境変数を使用して ID 検証用の認証情報を取得することを明示的に指定します。形式は OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET です。
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// バケットのリージョンを設定します。
cfg.Region = region;
// エンドポイントが指定されている場合、デフォルトのエンドポイントは上書きされます。
if (endpoint != null)
{
cfg.Endpoint = endpoint;
}
// cfg.UseInternalEndpoint = true を設定して、内部エンドポイントを指定せずに内部エンドポイントを設定することもできます。
// cfg.UseInternalEndpoint = true;
// 設定に基づいて OSS クライアントインスタンスを作成します。
using var client = new OSS.Client(cfg);
// 作成したクライアントを使用して後続の操作を実行します...OSS アクセラレーションエンドポイントの使用
using OSS = AlibabaCloud.OSS.V2; // 後続の使用を簡略化するために、Alibaba Cloud OSS SDK のエイリアスを作成します。
var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。
var endpoint = "https://oss-accelerate.aliyuncs.com"; // 任意。バケットが配置されているリージョンのアクセラレーションエンドポイント。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを 'https://oss-accelerate.aliyuncs.com' に設定します。
// OSS SDK のデフォルト設定を読み込みます。この設定は、環境変数から AccessKey ペアなどの認証情報を自動的に読み取ります。
var cfg = OSS.Configuration.LoadDefault();
// 環境変数を使用して ID 検証用の認証情報を取得することを明示的に指定します。形式は OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET です。
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// バケットのリージョンを設定します。
cfg.Region = region;
// エンドポイントが指定されている場合、デフォルトのエンドポイントは上書きされます。
if (endpoint != null)
{
cfg.Endpoint = endpoint;
}
// cfg.UseAccelerateEndpoint = true を設定して、アクセラレーションエンドポイントを指定せずにアクセラレーションエンドポイントを設定することもできます。
// cfg.UseAccelerateEndpoint = true;
// 設定に基づいて OSS クライアントインスタンスを作成します。
using var client = new OSS.Client(cfg);
// 作成したクライアントを使用して後続の操作を実行します... プライベートドメイン名の使用
using OSS = AlibabaCloud.OSS.V2; // 後続の使用を簡略化するために、Alibaba Cloud OSS SDK のエイリアスを作成します。
var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。
var endpoint = "https://service.corp.example.com"; // 必須。専用ドメイン名。例:https://service.corp.example.com。
// OSS SDK のデフォルト設定を読み込みます。この設定は、環境変数から AccessKey ペアなどの認証情報を自動的に読み取ります。
var cfg = OSS.Configuration.LoadDefault();
// 環境変数を使用して ID 検証用の認証情報を取得することを明示的に指定します。形式は OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET です。
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// バケットのリージョンを設定します。
cfg.Region = region;
// エンドポイントが指定されている場合、デフォルトのエンドポイントは上書きされます。
if (endpoint != null)
{
cfg.Endpoint = endpoint;
}
// 設定に基づいて OSS クライアントインスタンスを作成します。
using var client = new OSS.Client(cfg);
// 作成したクライアントを使用して後続の操作を実行します... Alibaba Gov Cloud エンドポイントの使用
次のサンプルコードは、Gov Cloud エンドポイントを使用して OSSClient を設定する方法を示しています。
using OSS = AlibabaCloud.OSS.V2; // 後続の使用を簡略化するために、Alibaba Cloud OSS SDK のエイリアスを作成します。
var region = "cn-north-2-gov-1"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国北部 2 (Ali Gov 1) リージョンにある場合、リージョンを cn-north-2-gov-1 に設定します。
// 必須。バケットが配置されているリージョンの内部エンドポイント。たとえば、バケットが中国北部 2 (Ali Gov 1) リージョンにある場合、エンドポイントを 'https://oss-cn-north-2-gov-1-internal.aliyuncs.com' に設定します。
// HTTP プロトコルを使用するには、エンドポイントを 'http://oss-cn-north-2-gov-1-internal.aliyuncs.com' に設定します。
var endpoint = "https://oss-cn-north-2-gov-1-internal.aliyuncs.com";
// OSS SDK のデフォルト設定を読み込みます。この設定は、環境変数から AccessKey ペアなどの認証情報を自動的に読み取ります。
var cfg = OSS.Configuration.LoadDefault();
// 環境変数を使用して ID 検証用の認証情報を取得することを明示的に指定します。形式は OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET です。
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// バケットのリージョンを設定します。
cfg.Region = region;
// エンドポイントが指定されている場合、デフォルトのエンドポイントは上書きされます。
if (endpoint != null)
{
cfg.Endpoint = endpoint;
}
// 設定に基づいて OSS クライアントインスタンスを作成します。
using var client = new OSS.Client(cfg);
// 作成したクライアントを使用して後続の操作を実行します... アクセス認証情報の設定
OSS は、認証情報を初期化するための複数のメソッドを提供します。認証と権限付与の要件に基づいてメソッドを選択してください。
RAM ユーザーの AccessKey ペアの使用
Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペア (AccessKey ID と AccessKey Secret) を使用して、認証情報プロバイダーを初期化できます。この方法は、アプリケーションが安全で安定した環境にデプロイされ、OSS リソースへの長期的なアクセスが必要で、頻繁な認証情報のローテーションが不要な場合に適しています。ただし、この方法では AccessKey ペアを手動でメンテナンスする必要があり、セキュリティリスクとメンテナンスの複雑さが増します。
Alibaba Cloud アカウントはすべてのリソースに対する完全な権限を持っています。Alibaba Cloud アカウントの AccessKey ペアが漏洩すると、システムは重大なセキュリティリスクにさらされます。Alibaba Cloud アカウントの AccessKey ペアは使用せず、代わりに最小限の権限を付与した RAM ユーザーの AccessKey ペアを使用してください。
RAM ユーザーの AccessKey ペアを作成する方法の詳細については、「AccessKey ペアの作成」をご参照ください。RAM ユーザーの AccessKey ID と AccessKey Secret は、AccessKey ペアが作成されたときにのみ表示されます。作成時に AccessKey ペアを保存する必要があります。AccessKey ペアを忘れた場合は、新しいものを作成する必要があります。
環境変数
RAM ユーザーの AccessKey ペアを使用して環境変数を設定します。
Linux
CLI で次のコマンドを実行して、環境変数の設定を
~/.bashrcファイルに追加します。echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc変更を適用します。
source ~/.bashrc環境変数が有効になったかどうかを確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
macOS
ターミナルで次のコマンドを実行して、デフォルトのシェルタイプを表示します。
echo $SHELLデフォルトのシェルタイプに基づいて環境変数を設定します。
Zsh
次のコマンドを実行して、環境変数の設定を
~/.zshrcファイルに追加します。echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc変更を適用します。
source ~/.zshrc環境変数が有効になったかどうかを確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
Bash
次のコマンドを実行して、環境変数の設定を
~/.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変更を適用します。
source ~/.bash_profile環境変数が有効になったかどうかを確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
Windows
CMD
CMD で次のコマンドを実行します。
setx OSS_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID" setx OSS_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"環境変数が有効になったかどうかを確認します。
echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET%
PowerShell
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)環境変数が有効になったかどうかを確認します。
[Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
システム環境変数を変更した後、コンパイル環境とランタイム環境を再起動またはリフレッシュします。これらの環境には、IDE、コマンドラインインターフェイス、その他のデスクトップアプリケーション、およびバックエンドサービスが含まれます。これにより、最新のシステム環境変数が読み込まれます。
環境変数を使用して認証情報を渡します。
using OSS = AlibabaCloud.OSS.V2; // 後続の使用を簡略化するために、Alibaba Cloud OSS SDK のエイリアスを作成します。 var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。 var endpoint = null as string; // 任意。OSS へのアクセスに使用されるエンドポイント。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。 // OSS SDK のデフォルト設定を読み込みます。この設定は、環境変数から AccessKey ペアなどの認証情報を自動的に読み取ります。 var cfg = OSS.Configuration.LoadDefault(); // 環境変数を使用して ID 検証用の認証情報を取得することを明示的に指定します。形式は OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET です。 cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider(); // バケットのリージョンを設定します。 cfg.Region = region; // エンドポイントが指定されている場合、デフォルトのエンドポイントは上書きされます。 if(endpoint != null) { cfg.Endpoint = endpoint; } // 設定に基づいて OSS クライアントインスタンスを作成します。 using var client = new OSS.Client(cfg);
静的認証情報
次のサンプルコードは、AccessKey ペアを明示的に設定してアクセス認証情報をハードコーディングする方法を示しています。
本番環境のアプリケーションにアクセス認証情報を埋め込まないでください。この方法はテスト目的でのみ使用されます。
using OSS = AlibabaCloud.OSS.V2; // 後続の使用を簡略化するために、Alibaba Cloud OSS SDK のエイリアスを作成します。
var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。
var endpoint = null as string; // 任意。OSS へのアクセスに使用されるエンドポイント。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var cfg = OSS.Configuration.LoadDefault();
// RAM ユーザーの AccessKey ID と AccessKey Secret を指定します。
var access_key_id = "yourAccessKeyId";
var access_key_secret = "yourAccessKeySecret";
// 静的な認証情報プロバイダーを作成し、RAM ユーザーの AccessKey ID と AccessKey Secret を明示的に設定します。
cfg.CredentialsProvider = new OSS.Credentials.StaticCredentialsProvider(access_key_id,access_key_secret);
// バケットのリージョンを設定します。
cfg.Region = region;
// エンドポイントが指定されている場合、デフォルトのエンドポイントは上書きされます。
if(endpoint != null)
{
cfg.Endpoint = endpoint;
}
// 設定に基づいて OSS クライアントインスタンスを作成します。
using var client = new OSS.Client(cfg);STS トークンの使用
アプリケーションが OSS への一時的なアクセスを必要とする場合、Security Token Service (STS) から取得した一時的な ID 認証情報 (AccessKey ID、AccessKey Secret、およびセキュリティトークン) を使用して認証情報プロバイダーを初期化できます。ただし、この方法では STS トークンを手動でメンテナンスする必要があり、セキュリティリスクとメンテナンスの複雑さが増します。さらに、OSS に複数回一時的にアクセスするには、STS トークンを手動で更新する必要があります。
OpenAPI 操作を呼び出して STS トークンを迅速に取得する方法については、「AssumeRole」をご参照ください。
SDK を使用して STS トークンを取得する方法については、「STS トークンを使用した OSS へのアクセス」をご参照ください。
STS トークンを生成する際には、有効期限を指定する必要があります。STS トークンは有効期限が切れると無効になり、使用できなくなります。
STS エンドポイントのリストについては、「エンドポイント」をご参照ください。
環境変数
一時的な ID 認証情報を使用して環境変数を設定します。
Mac OS X/Linux/UNIX
警告RAM ユーザーの AccessKey ペアではなく、STS から取得した一時的な ID 認証情報 (AccessKey ID、AccessKey Secret、およびセキュリティトークン) を使用します。
STS から取得した AccessKey ID は `STS.` で始まります。例:`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
警告RAM ユーザーの AccessKey ペアではなく、STS から取得した一時的な ID 認証情報 (AccessKey ID、AccessKey Secret、およびセキュリティトークン) を使用します。
STS から取得した AccessKey ID は `STS.` で始まります。例:`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>環境変数を使用して認証情報を渡します。
using OSS = AlibabaCloud.OSS.V2; // 後続の使用を簡略化するために、Alibaba Cloud OSS SDK のエイリアスを作成します。 var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。 var endpoint = null as string; // 任意。OSS へのアクセスに使用されるエンドポイント。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。 // OSS SDK のデフォルト設定を読み込みます。この設定は、環境変数から AccessKey ペアなどの認証情報を自動的に読み取ります。 var cfg = OSS.Configuration.LoadDefault(); // 環境変数を使用して ID 検証用の認証情報を取得することを明示的に指定します。形式は OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET、および OSS_SESSION_TOKEN です。 cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider(); // バケットのリージョンを設定します。 cfg.Region = region; // エンドポイントが指定されている場合、デフォルトのエンドポイントは上書きされます。 if(endpoint != null) { cfg.Endpoint = endpoint; } // 設定に基づいて OSS クライアントインスタンスを作成します。 using var client = new OSS.Client(cfg);
静的認証情報
次のサンプルコードは、一時的な AccessKey ペアを明示的に設定してアクセス認証情報をハードコーディングする方法を示しています。
本番環境のアプリケーションにアクセス認証情報を埋め込まないでください。この方法はテスト目的でのみ使用されます。
using OSS = AlibabaCloud.OSS.V2; // 後続の使用を簡略化するために、Alibaba Cloud OSS SDK のエイリアスを作成します。
var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。
var endpoint = null as string; // 任意。OSS へのアクセスに使用されるエンドポイント。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var cfg = OSS.Configuration.LoadDefault();
// Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret ではなく、一時的な AccessKey ID と AccessKey Secret を指定します。
// STS から取得した AccessKey ID は、次のコードに示すように STS で始まることに注意してください。
var access_key_id = "STS.****************";
var access_key_secret = "yourAccessKeySecret";
// 取得した STS トークンを指定します。
var securityToken = "yourSecurityToken";
// 静的な認証情報プロバイダーを作成し、一時的な AccessKey ID、AccessKey Secret、および STS トークンを明示的に設定します。
cfg.CredentialsProvider = new OSS.Credentials.StaticCredentialsProvider(access_key_id, access_key_secret, securityToken);
// バケットのリージョンを設定します。
cfg.Region = region;
// エンドポイントが指定されている場合、デフォルトのエンドポイントは上書きされます。
if(endpoint != null)
{
cfg.Endpoint = endpoint;
}
// 設定に基づいて OSS クライアントインスタンスを作成します。
using var client = new OSS.Client(cfg);RAM ロール ARN の使用
アプリケーションが OSS へのアクセスに権限付与を必要とする場合 (異なる Alibaba Cloud アカウント間で OSS にアクセスするなど)、RAM ロールの Alibaba Cloud リソースネーム (ARN) を使用して認証情報プロバイダーを初期化できます。このメソッドの基盤となる実装では、STS トークンが使用されます。RAM ロールの ARN を指定すると、Credentials ツールは STS から STS トークンを取得します。このツールはまた、現在のセッションが期限切れになる前に AssumeRole 操作を呼び出して新しい STS トークンを要求します。さらに、policy パラメーターに値を割り当てて、RAM ロールをより小さな権限セットに制限することもできます。
Alibaba Cloud アカウントはすべてのリソースに対する完全な権限を持っています。Alibaba Cloud アカウントの AccessKey ペアが漏洩すると、システムは重大なセキュリティリスクにさらされます。Alibaba Cloud アカウントの AccessKey ペアは使用せず、代わりに最小限の権限を付与した RAM ユーザーの AccessKey ペアを使用してください。
RAM ユーザーの AccessKey ペアを作成する方法の詳細については、「AccessKey ペアの作成」をご参照ください。RAM ユーザーの AccessKey ID と AccessKey Secret は、AccessKey ペアが作成されたときにのみ表示されます。作成時に AccessKey ペアを保存する必要があります。AccessKey ペアを忘れた場合は、新しいものを作成する必要があります。
RAM ロール ARN を取得する方法の詳細については、「CreateRole」をご参照ください。
Aliyun.Credentials 依存関係を追加します。
dotnet add package Aliyun.Credentials --source https://api.nuget.org/v3/index.jsonAccessKey ペアと RAM ロール ARN を使用してアクセス認証情報を設定します。
using OSS = AlibabaCloud.OSS.V2; // 後続の使用を簡略化するために、Alibaba Cloud OSS SDK のエイリアスを作成します。 var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。 var endpoint = null as string; // 任意。OSS へのアクセスに使用されるエンドポイント。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。 // Alibaba Cloud 認証情報設定 - RAM ロール ARN を使用します。 // 認証情報の種類の詳細については、https://github.com/aliyun/credentials-csharp をご参照ください。 var credConfig = new Aliyun.Credentials.Models.Config() { // 認証情報の種類を RAM ロール ARN として指定します。 Type = "ram_role_arn", // 環境変数から AccessKey ID を読み取ります。 AccessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID"), // 環境変数から AccessKey Secret を読み取ります。 AccessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET"), // RAM ロールの ARN。形式:acs:ram::USER_Id:role/ROLE_NAME。 // このパラメーターは、ALIBABA_CLOUD_ROLE_ARN 環境変数を使用して設定することもできます。 RoleArn = "acs:ram::***************:role/******", // ロールセッションの名前。このパラメーターは現在のセッションを識別するために使用されます。 RoleSessionName = "<RoleSessionName>", // 任意。引き受ける権限ポリシー。 Policy = "<Policy>", // 任意。STS トークンの有効期間 (秒単位)。 RoleSessionExpiration = 3600, }; // 認証情報クライアントインスタンスを作成して、一時的なアクセス認証情報を取得します。 var credClient = new Aliyun.Credentials.Client(credConfig); // 共通の認証情報を OSS SDK が要求する認証情報プロバイダーに変換します。 var credentialsProvider = new OSS.Credentials.CredentialsProvideFunc(() => { // 一時的な認証情報を取得します。 var credential = credClient.GetCredential(); // OSS SDK が要求する認証情報オブジェクトを構築します。 return new OSS.Credentials.Credentials( credential.AccessKeyId, // 一時的な AccessKey ID。 credential.AccessKeySecret, // 一時的な AccessKey Secret。 credential.SecurityToken); // STS トークン。 }); // OSS SDK のデフォルト設定を読み込みます。 // デフォルトでは、認証情報は環境変数から読み込まれます。この例では、カスタム認証情報によって上書きされます。 var cfg = OSS.Configuration.LoadDefault(); // OSS リージョンを設定します。 cfg.Region = region; // カスタム認証情報プロバイダーを設定します。 cfg.CredentialsProvider = credentialsProvider; // カスタムエンドポイントが指定されている場合、デフォルト設定は上書きされます。 if (endpoint != null) { cfg.Endpoint = endpoint; } // 設定に基づいて OSS クライアントインスタンスを作成します。 using var client = new OSS.Client(cfg); // ListBuckets 操作用のページネーターを作成します。 // これは、現在のアカウント配下にあるすべての OSS バケットを取得するために使用されます。 var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest()); // バケットのページ分割された結果を非同期で反復処理します。 Console.WriteLine("Buckets:"); await foreach (var page in paginator.IterPageAsync()) { // 各ページのバケットを走査します。 foreach (var bucket in page.Buckets ?? []) { // バケット情報 (名前、ストレージクラス、ロケーション) を出力します。 Console.WriteLine($"Bucket:{bucket.Name}, {bucket.StorageClass}, {bucket.Location}"); } }
ECS RAM ロールの使用
アプリケーションが ECS インスタンス、ECI インスタンス、または Container Service for Kubernetes (ACK) のワーカーノードで実行される場合、ECS RAM ロールを使用して認証情報プロバイダーを初期化することを推奨します。このメソッドの基盤となる実装では、STS トークンが使用されます。ECS RAM ロールを使用すると、ロールを ECS インスタンス、ECI インスタンス、または ACK のワーカーノードに関連付けて、インスタンス内で STS トークンを自動的に更新できます。この方法では、AccessKey ペアや STS トークンを提供する必要がないため、それらを手動で管理する際のセキュリティリスクとメンテナンスのオーバーヘッドがなくなります。ECS RAM ロールを取得する方法の詳細については、「CreateRole」をご参照ください。
Aliyun.Credentials 依存関係を追加します。
dotnet add package Aliyun.Credentials --source https://api.nuget.org/v3/index.jsonECS RAM ロールを使用してアクセス認証情報を設定します。
using OSS = AlibabaCloud.OSS.V2; // 後続の使用を簡略化するために、Alibaba Cloud OSS SDK のエイリアスを作成します。 using Aliyun.Credentials.Models; var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。 var endpoint = null as string; // 任意。OSS へのアクセスに使用されるエンドポイント。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。 // 認証情報設定を作成し、認証に ECS RAM ロールを使用します。 var credConfig = new Aliyun.Credentials.Models.Config() { // 認証情報の種類。 Type = "ecs_ram_role", // ロール名。このパラメーターは任意です。このパラメーターを指定しない場合、ロール名は自動的に取得されます。リクエストを減らすために、このパラメーターを設定することを推奨します。 RoleName = "<RoleName>" }; // 認証情報クライアントを作成して、一時的なアクセス認証情報を取得します。 var credClient = new Aliyun.Credentials.Client(credConfig); // 共通の認証情報を OSS SDK が要求する認証情報プロバイダーに変換します。 var credentialsProvider = new OSS.Credentials.CredentialsProviderFunc(() => { // 一時的な認証情報を取得します。 var credential = credClient.GetCredential(); // OSS SDK が要求する認証情報オブジェクトを構築します。 return new OSS.Credentials.Credentials( credential.AccessKeyId, // 一時的な AccessKey ID。 credential.AccessKeySecret, // 一時的な AccessKey Secret。 credential.SecurityToken); // STS トークン。 }); // OSS クライアントのデフォルト設定を読み込みます。 var cfg = OSS.Configuration.LoadDefault(); // OSS リージョンを設定します。 cfg.Region = region; // カスタム認証情報プロバイダーを設定します。 cfg.CredentialsProvider = credentialsProvider; // カスタムエンドポイントが指定されている場合、デフォルト設定は上書きされます。 if (endpoint != null) { cfg.Endpoint = endpoint; } // 設定に基づいて OSS クライアントインスタンスを作成します。 using var client = new OSS.Client(cfg); // 現在のロールアカウント配下にあるすべての OSS バケットを取得します。 var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest()); // バケットのページ分割された結果を非同期で反復処理します。 Console.WriteLine("Buckets:"); await foreach (var page in paginator.IterPageAsync()) { // 各ページのバケットを走査します。 foreach (var bucket in page.Buckets ?? []) { // バケット情報 (名前、ストレージクラス、ロケーション) を出力します。 Console.WriteLine($"Bucket:{bucket.Name}, {bucket.StorageClass}, {bucket.Location}"); } }
OIDC ロール ARN の使用
ACK のワーカーノードに RAM ロールを設定した後、そのノード上の Pod 内のアプリケーションは、ECS にデプロイされたアプリケーションと同様に、グローバルメタサービスを通じて関連付けられたロールの STS トークンを取得できます。ただし、信頼できないアプリケーションがコンテナークラスターにデプロイされている場合、それらのアプリケーションがワーカーノードに関連付けられたインスタンス RAM ロールの STS トークンをグローバルメタサービスを通じて取得することを望まない場合があります。信頼できないアプリケーションの例としては、コードが公開されていない顧客から提出されたアプリケーションが挙げられます。これらの信頼できないアプリケーションが必要な STS トークンを安全に取得できるようにし、アプリケーションレベルで権限を最小限に抑えつつ、クラウドリソースのセキュリティを損なわないようにするために、RAM Roles for Service Accounts (RRSA) 機能を使用できます。このメソッドの基盤となる実装では、STS トークンが使用されます。Alibaba Cloud コンテナークラスターは、各アプリケーション Pod に対応するサービスアカウント OpenID Connect (OIDC) トークンファイルを作成してマウントし、関連する設定情報を環境変数に注入します。Credentials ツールは環境変数から設定情報を取得し、STS の AssumeRoleWithOIDC 操作を呼び出して、バインドされたロールの STS トークンを取得します。この方法では、AccessKey ペアや STS トークンを提供する必要がないため、それらを手動で管理する際のセキュリティリスクとメンテナンスのオーバーヘッドがなくなります。詳細については、「RRSA に基づく Pod 権限の分離」をご参照ください。
Aliyun.Credentials 依存関係を追加します。
dotnet add package Aliyun.Credentials --source https://api.nuget.org/v3/index.json
OIDC ロール ARN を使用してアクセス認証情報を設定します。
using OSS = AlibabaCloud.OSS.V2; // 後続の使用を簡略化するために、Alibaba Cloud OSS SDK のエイリアスを作成します。 using Aliyun.Credentials.Models; var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。 var endpoint = null as string; // 任意。OSS へのアクセスに使用されるエンドポイント。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。 // 認証情報設定を作成し、認証に OIDC ロール ARN を使用します。 var credConfig = new Aliyun.Credentials.Models.Config() { // 認証情報の種類。 Type = "oidc_role_arn", // 形式:acs:ram::USER_Id:role/ROLE_NAME。 // roleArn は任意です。代わりに ALIBABA_CLOUD_ROLE_ARN 環境変数を設定できます。 RoleArn = "<RoleArn>", // 形式:acs:ram::USER_Id:oidc-provider/OIDC_IdP_name。 // OIDCProviderArn は任意です。代わりに ALIBABA_CLOUD_OIDC_PROVIDER_ARN 環境変数を設定できます。 OIDCProviderArn = "<OIDCProviderArn>", // 形式:path。 // OIDCTokenFilePath は任意です。代わりに ALIBABA_CLOUD_OIDC_TOKEN_FILE 環境変数を設定できます。 OIDCTokenFilePath = "/Users/xxx/xxx", // ロールセッションの名前。 RoleSessionName = "<RoleSessionName>", // 任意。引き受ける権限ポリシー。 Policy = "<Policy>", // 任意。STS トークンの有効期間。 RoleSessionExpiration = 3600, }; // 認証情報クライアントを作成して、一時的なアクセス認証情報を取得します。 var credClient = new Aliyun.Credentials.Client(credConfig); // 共通の認証情報を OSS SDK が要求する認証情報プロバイダーに変換します。 var credentialsProvider = new OSS.Credentials.CredentialsProvideFunc(() => { // 一時的な認証情報を取得します。 var credential = credClient.GetCredential(); // OSS SDK が要求する認証情報オブジェクトを構築します。 return new OSS.Credentials.Credentials( credential.AccessKeyId, // 一時的な AccessKey ID。 credential.AccessKeySecret, // 一時的な AccessKey Secret。 credential.SecurityToken); // STS トークン。 }); // OSS クライアントのデフォルト設定を読み込みます。 var cfg = OSS.Configuration.LoadDefault(); // OSS リージョンを設定します。 cfg.Region = region; // カスタム認証情報プロバイダーを設定します。 cfg.CredentialsProvider = credentialsProvider; // カスタムエンドポイントが指定されている場合、デフォルト設定は上書きされます。 if (endpoint != null) { cfg.Endpoint = endpoint; } // 設定に基づいて OSS クライアントインスタンスを作成します。 using var client = new OSS.Client(cfg); // 現在のロールアカウント配下にあるすべての OSS バケットを取得します。 var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest()); // バケットのページ分割された結果を非同期で反復処理します。 Console.WriteLine("Buckets:"); await foreach (var page in paginator.IterPageAsync()) { // 各ページのバケットを走査します。 foreach (var bucket in page.Buckets ?? []) { // バケット情報 (名前、ストレージクラス、ロケーション) を出力します。 Console.WriteLine($"Bucket:{bucket.Name}, {bucket.StorageClass}, {bucket.Location}"); } }
カスタムアクセス認証情報の使用
上記の認証情報設定方法のいずれも要件を満たさない場合、認証情報を取得するカスタムメソッドを実装できます。
Credentials.CredentialsProvideFunc インターフェイスの使用
using OSS = AlibabaCloud.OSS.V2; // 後続の使用を簡略化するために、Alibaba Cloud OSS SDK のエイリアスを作成します。
var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。
var endpoint = null as string; // 任意。OSS へのアクセスに使用されるエンドポイント。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
// アクセス認証情報を明示的に設定します。これはデモンストレーション目的のみです。実際のプロジェクトでは、環境変数から認証情報を取得できます。
var AccessKeyId = "your AccessKeyId"; // 必須。RAM ユーザーの AccessKey ID または STS から取得した一時的な AccessKey ID。
var AccessKeySecret = "your AccessKeySecret"; // 必須。RAM ユーザーの AccessKey Secret または STS から取得した一時的な AccessKey Secret。
// var SecurityToken = "your STS Token"; // 任意。一時的なアクセス認証情報を使用する場合にこの変数を設定できます。
// 共通の認証情報を OSS SDK が要求する認証情報プロバイダーに変換します。
var credentialsProvider = new OSS.Credentials.CredentialsProvideFunc(() =>
{
// 長期的な認証情報を使用して、OSS SDK が要求する認証情報オブジェクトを構築します。
return new OSS.Credentials.Credentials(
AccessKeyId, // RAM ユーザーの AccessKey ID。
AccessKeySecret); // RAM ユーザーの AccessKey Secret。
// 一時的なアクセス認証情報を使用して、OSS SDK が要求する認証情報オブジェクトを構築します。
// return new OSS.Credentials.Credentials(
// AccessKeyId, // 一時的な AccessKey ID。
// AccessKeySecret, // 一時的な AccessKey Secret。
// SecurityToken); // STS トークン。
});
// OSS クライアントのデフォルト設定を読み込みます。
var cfg = OSS.Configuration.LoadDefault();
// OSS リージョンを設定します。
cfg.Region = region;
// カスタム認証情報プロバイダーを設定します。
cfg.CredentialsProvider = credentialsProvider;
// カスタムエンドポイントが指定されている場合、デフォルト設定は上書きされます。
if (endpoint != null)
{
cfg.Endpoint = endpoint;
}
// 設定に基づいて OSS クライアントインスタンスを作成します。
using var client = new OSS.Client(cfg);
// 現在のロールアカウント配下にあるすべての OSS バケットを取得します。
var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest());
// バケットのページ分割された結果を非同期で反復処理します。
Console.WriteLine("Buckets:");
await foreach (var page in paginator.IterPageAsync())
{
// 各ページのバケットを走査します。
foreach (var bucket in page.Buckets ?? [])
{
// バケット情報 (名前、ストレージクラス、ロケーション) を出力します。
Console.WriteLine($"Bucket:{bucket.Name}, {bucket.StorageClass}, {bucket.Location}");
}
}サンプルコード
OSS SDK for C# V2 は、参照用にさまざまなサンプルコードを提供しています。
サンプル | GitHub サンプルファイル |