すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:初期化 (C# SDK V1)

最終更新日:Nov 30, 2025

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 検証を有効にするかどうかを指定します。

  • true:MD5 検証を有効にします。

  • false:MD5 検証を無効にします。

重要

MD5 検証は、パフォーマンスに若干のオーバーヘッドを引き起こします。

false

IsCname

エンドポイントが CNAME ドメイン名をサポートするかどうかを指定します。 CNAME ドメイン名は、カスタムドメイン名をバケットにアタッチするために使用されます。

false

ProgressUpdateInterval

進捗横棒グラフの更新間隔 (バイト単位)。

8096

ProxyHost

プロキシサーバー。 例:example.aliyundoc.com

なし

ProxyPort

プロキシポート。 例:3128 または 8080

なし

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);