OssClient は、Object Storage Service (OSS) の C# クライアントです。 これを使用して、バケットやオブジェクトなどの OSS リソースを管理できます。
OssClient の作成
次のいずれかの方法で OssClient インスタンスを作成できます。
V4 署名 (推奨)
V4 署名アルゴリズムはより安全です。 V4 署名でクライアントを初期化するには、エンドポイントと汎用の Alibaba Cloud リージョン ID を指定します。 リージョン ID はリクエストのリージョンを識別します。 たとえば、cn-hangzhou です。 また、SignVersion.V4 を宣言する必要もあります。 V4 署名は、OSS .NET SDK 2.14.0 以降でサポートされています。
次の例は、V4 署名と OSS ドメイン名を使用して OssClient インスタンスを作成する方法を示しています。 この例は、カスタムドメイン名の使用や Security Token Service (STS) の利用など、他のシナリオにも応用できます。
using Aliyun.OSS;
using Aliyun.OSS.Common;
// 環境変数からアクセス認証情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// バケットが配置されているリージョンのリージョン ID を指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョン ID を cn-hangzhou に設定します。
const string region = "cn-hangzhou";
// ClientConfiguration インスタンスを作成し、必要に応じてデフォルトのパラメーターを変更します。
var conf = new ClientConfiguration();
// 署名バージョンを V4 に設定します。
conf.SignatureVersion = SignatureVersion.V4;
// OssClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);V1 署名 (非推奨)
2025 年 3 月 1 日以降、OSS の V1 署名アルゴリズムは、新しい UID を持つ新規のお客様にはご利用いただけなくなります。 2025 年 9 月 1 日以降、OSS は V1 署名アルゴリズムの更新とメンテナンスを終了し、V1 署名アルゴリズムは新しいバケットでは利用できなくなります。 ビジネスへの影響を防ぐため、できるだけ早く V1 署名を V4 署名にアップグレードしてください。
OSS エンドポイントを使用した OssClient インスタンスの作成
次のコードは、OSS ドメイン名を使用して OssClient インスタンスを作成する方法を示しています。
using Aliyun.OSS;
// 環境変数からアクセス認証情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// OssClient インスタンスを作成します。
var ossClient = new OssClient(endpoint, accessKeyId, accessKeySecret); カスタムドメイン名を使用した OSSClient インスタンスの作成
次のコードは、カスタムドメイン名を使用して OssClient インスタンスを作成する方法を示しています。
カスタムドメイン名を使用する場合、ossClient.listBuckets メソッドはサポートされません。
using Aliyun.OSS;
using Aliyun.OSS.Common;
// 環境変数からアクセス認証情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// カスタムドメイン名を指定します。
const string endpoint = "yourDomain";
// ClientConfiguration インスタンスを作成し、必要に応じてデフォルトのパラメーターを変更します。
var conf = new ClientConfiguration();
// CNAME を有効にします。 CNAME は、カスタムドメイン名をバケットにアタッチするためのプロシージャです。
conf.IsCname = true;
// OssClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf); STS を使用した OssClient の作成
次のコードは、STS を使用して OssClient インスタンスを作成する方法を示しています。
using Aliyun.OSS;
// このサンプルコードを実行する前に、STS から取得した一時的な AccessKey ペアを使用して、YOUR_ACCESS_KEY_ID および YOUR_ACCESS_KEY_SECRET 環境変数を設定していることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("YOUR_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("YOUR_ACCESS_KEY_SECRET");
// STS から取得したセキュリティトークン。
const string securityToken = "yourSecurityToken";
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// OssClient インスタンスを作成します。
var ossClient = new OssClient(endpoint, accessKeyId, accessKeySecret, securityToken);OssClient の設定
ClientConfiguration は OssClient の設定クラスです。 このクラスを使用して、プロキシ、接続タイムアウト、最大接続数などのパラメーターを設定できます。 次のパラメーターを設定できます:
パラメーター | 説明 | デフォルト値 |
ConnectionLimit | 最大同時接続数。 | 512 |
MaxErrorRetry | 失敗したリクエストの最大リトライ回数。 | 3 |
ConnectionTimeout | 接続タイムアウト期間 (ミリ秒単位)。 | -1 (タイムアウトなし) |
EnableMD5Check | データアップロードまたはダウンロード時の MD5 検証を有効にするかどうかを指定します。
重要 MD5 検証は、パフォーマンスに若干のオーバーヘッドを引き起こします。 | false |
IsCname | エンドポイントが CNAME ドメイン名をサポートするかどうかを指定します。 CNAME ドメイン名は、カスタムドメイン名をバケットにアタッチするために使用されます。 | false |
ProgressUpdateInterval | 進捗横棒グラフの更新間隔 (バイト単位)。 | 8096 |
ProxyHost | プロキシサーバー。 例: | なし |
ProxyPort | プロキシポート。 例: | なし |
ProxyUserName | プロキシサービスのユーザー名。 このパラメーターはオプションです。 | なし |
ProxyPassword | プロキシサービスのパスワード。 このパラメーターはオプションです。 | なし |
次のコードは、OssClient を設定する方法を示しています。
using Aliyun.OSS;
using Aliyun.OSS.Common;
var conf = new ClientConfiguration();
// 最大同時接続数を設定します。
ClientConfiguration.ConnectionLimit = 512;
// 失敗したリクエストの最大リトライ回数を設定します。
conf.MaxErrorRetry = 3;
// 接続タイムアウト期間を設定します。
conf.ConnectionTimeout = 300;
// MD5 検証を有効にします。
conf.EnableMD5Check = true;
// プロキシサーバーを設定します。
conf.ProxyHost = "example.aliyundoc.com";
// プロキシポートを設定します。
conf.ProxyPort = 3128;
// プロキシのユーザー名を設定します。
conf.ProxyUserName = "user";
// プロキシのパスワードを設定します。
conf.ProxyPassword = "password";
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);