OSSClientは、オブジェクトストレージサービス (OSS) クライアントとして機能します。バケットやオブジェクトなどのOSSリソースを管理できます。
OSSClientインスタンスの作成
次のいずれかの方法を使用して、OSSClientインスタンスを作成できます。
(推奨) V4署名アルゴリズムの使用
より良いセキュリティを提供するV4署名アルゴリズムを使用することを推奨します。 V4署名アルゴリズムを使用する場合は、regionパラメーターを含めます。 リージョンパラメーターはAlibaba CloudリージョンIDである必要があります。 例: cn-杭州
SignVersion.V4も宣言する必要があります。 OSS SDK for。NET 2.14.0以降はV4署名アルゴリズムをサポートしています。
次のサンプルコードは、OSSエンドポイントとV4署名アルゴリズムを使用してOSSClientインスタンスを作成する方法の例を示しています。 Security Token Service (STS) から取得したカスタムドメイン名またはアクセス資格情報を使用してOSSClientインスタンスを作成するには、実際のシナリオに基づいて次のサンプルコードを変更します。
using Aliyun.OSS;
using Aliyun.OSS.Common;
// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret=Environment.GetEnvironmentVariable ("OSS_ACCESS_KEY_SECRET");
// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to cn-hangzhou.
const string region = "cn-hangzhou";
// Create a ClientConfiguration instance and modify the default parameters based on your requirements.
var conf = new ClientConfiguration();
// Specify the V4 signature.
conf.SignatureVersion = SignatureVersion.V4;
// Create an OSSClient instance.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
(非推奨) V1署名アルゴリズムの使用
2025年3月1日以降、新しいUIDを持つ新規顧客は、OSSのV1署名アルゴリズムを利用できなくなります。 2025年9月1日以降、OSSはV1署名アルゴリズムを更新および維持しなくなり、V1署名アルゴリズムは新しいバケットで使用できなくなります。 ビジネスへの影響を防ぐため、できるだけ早い機会にV1シグネチャをV4シグネチャにアップグレードします。
OSSエンドポイントを使用したOSSClientインスタンスの作成
次のサンプルコードは、OSSエンドポイントを使用してOSSClientインスタンスを作成する方法の例を示しています。
using Aliyun.OSS;
// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Create an OSSClient instance.
var ossClient = new OssClient(endpoint, accessKeyId, accessKeySecret);
カスタムドメイン名を使用してOSSClientインスタンスを作成する
次のサンプルコードは、カスタムドメイン名を使用してOSSClientインスタンスを作成する方法の例を示しています。
カスタムドメイン名が使用されている場合、ossClient.listBucketsは使用できません。
using Aliyun.OSS;
using Aliyun.OSS.Common;
// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Specify the custom domain name.
const string endpoint = "yourDomain";
// Create a ClientConfiguration instance and modify the default parameters based on your requirements.
var conf = new ClientConfiguration();
// Specify that a CNAME can be used as an endpoint to create the OssClient instance. A CNAME record specifies the mapping relationship between a custom domain name and a bucket.
conf.IsCname = true;
// Create an OSSClient instance.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
STSから取得したアクセス資格情報を使用してOSSClientインスタンスを作成する
次のサンプルコードは、STSから取得したアクセス資格情報を使用してOSSClientインスタンスを作成する方法の例を示しています。
using Aliyun.OSS;
// Before you run the sample code, make sure that the YOUR_ACCESS_KEY_ID and YOUR_ACCESS_KEY_SECRET environment variables are configured by using the temporary access credentials that you obtained from STS.
var accessKeyId = Environment.GetEnvironmentVariable("YOUR_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("YOUR_ACCESS_KEY_ID");
// Specify the security token obtained from STS.
const string securityToken = "yourSecurityToken";
// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Create an OSSClient instance.
var ossClient = new OssClient(endpoint, accessKeyId, accessKeySecret, securityToken);
OSSClient インスタンスの設定
ClientConfigurationは、OSSClientインスタンスの構成クラスです。 ClientConfigurationを使用して、プロキシ、接続タイムアウト期間、最大接続数などのパラメーターを設定できます。 下表に、各パラメーターを説明します。
パラメーター | 説明 | デフォルト値 |
ConnectionLimit | 同時接続の最大数。 | 512 |
MaxErrorRetry | リクエストエラー発生時の最大リトライ回数。 | 3 |
ConnectionTimeout | 接続のタイムアウト期間。 単位:ミリ秒。 | -1 (接続がタイムアウトしないことを示します) |
EnalbeMD5Check | オブジェクトをアップロードまたはダウンロードするときにMD5検証を有効にするかどうかを指定します。
重要 MD5検証が有効になると、システムパフォーマンスが損なわれる可能性があります。 | false |
IsCname | CNAMEをエンドポイントとして使用してOSSClientインスタンスを作成できるかどうかを指定します。 CNAMEは、カスタムドメイン名をバケットにバインドするために使用されます。 | false |
ProgressUpdateInterval | 進行状況バーの更新間隔。 単位はバイトです。 | 8096 |
ProxyHost | プロキシサーバー。 例: | なし |
ProxyPort | プロキシポート。 例: | なし |
ProxyUserName | プロキシネットワークへのアクセスに使用されるユーザー名。 このパラメーターはオプションです。 | なし |
ProxyPassword | プロキシネットワークへのアクセスに使用されるパスワード。 このパラメーターはオプションです。 | なし |
次のサンプルコードは、OSSClientインスタンスを設定する方法の例を示しています。
using Aliyun.OSS;
using Aliyun.OSS.Common;
var conf = new ClientConfiguration();
// Specify the maximum number of concurrent connections.
ClientConfiguration.ConnectionLimit = 512;
// Specify the maximum number of retries in case of a request error.
conf.MaxErrorRetry = 3;
// Specify the timeout period of the connections.
conf.ConnectionTimeout = 300;
// Enable MD5 verification.
conf.EnalbeMD5Check = true;
// Specify the proxy server.
conf.ProxyHost = "example.aliyundoc.com";
// Specify the port of the proxy server.
conf.ProxyPort = 3128;
// Specify the username used to access the proxy network.
conf.ProxyUserName = "user";
// Specify the password used to access the proxy network.
conf.ProxyPassword = "password";
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);