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

Object Storage Service:バージョン管理の管理 (C# SDK V2)

最終更新日:Nov 09, 2025

バージョン管理は、バケット内のすべてのファイル (オブジェクト) に適用されます。オブジェクトのバージョン管理を使用すると、オブジェクトが上書きされたり誤って削除されたりした場合に、オブジェクトを以前のいずれかのバージョンに復元できます。

注意事項

  • このトピックのサンプルコードでは、リージョン ID が cn-hangzhou の中国 (杭州) を例として使用します。デフォルトでは、パブリックエンドポイントが使用されます。同じリージョン内の他の Alibaba Cloud プロダクトから OSS にアクセスする場合は、内部エンドポイントを使用する必要があります。OSS がサポートするリージョンとエンドポイント間のマッピングの詳細については、「リージョンとエンドポイント」をご参照ください。

  • バケットのバージョン管理ステータスを設定するには、oss:PutBucketVersioning 権限が必要です。バケットのバージョン管理ステータスに関する情報を取得するには、oss:GetBucketVersioning 権限が必要です。詳細については、「RAM ユーザーへのカスタムアクセスポリシーの付与」をご参照ください。

サンプルコード

バケットのバージョン管理ステータスを設定する

次のコードを使用して、バケットのバージョン管理ステータスを有効に設定できます。

using OSS = AlibabaCloud.OSS.V2;  // Alibaba Cloud OSS SDK のエイリアスを作成して、後続の使用を簡素化します。

var region = "cn-hangzhou";  // 必須。バケットが配置されているリージョン。この例では、中国 (杭州) リージョンを使用します。Region を cn-hangzhou に設定します。
var endpoint = null as string;  // オプション。OSS へのアクセスに使用されるドメイン名。この例では、中国 (杭州) リージョンのエンドポイントを使用します。Endpoint を https://oss-cn-hangzhou.aliyuncs.com に設定します。
var bucket = "your bucket name";  // 必須。バケット名。
var status = "Enabled";  // 必須。バケットに設定するバージョン管理ステータス。

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

// PutBucketVersioningAsync メソッドを呼び出して、バケットのバージョン管理を有効にします。
var result = await client.PutBucketVersioningAsync(new OSS.Models.PutBucketVersioningRequest()
{
    Bucket = bucket,
    VersioningConfiguration = new OSS.Models.VersioningConfiguration()
    {
        Status = status
    }
});

// 結果を出力します。
Console.WriteLine("PutBucketVersioning done");  // 操作が完了したことを示します。
Console.WriteLine($"StatusCode: {result.StatusCode}");  // HTTP ステータスコード。
Console.WriteLine($"RequestId: {result.RequestId}");  // リクエスト ID。この ID は、Alibaba Cloud でのトラブルシューティングに使用されます。
Console.WriteLine("Response Headers:");  // 応答ヘッダー。
result.Headers.ToList().ForEach(x => Console.WriteLine(x.Key + " : " + x.Value));  // すべての応答ヘッダーを走査して出力します。

バケットのバージョン管理ステータスを取得する

次のコードを使用して、バケットのバージョン管理ステータスを取得できます。

using OSS = AlibabaCloud.OSS.V2;  // Alibaba Cloud OSS SDK のエイリアスを作成して、後続の使用を簡素化します。

var region = "cn-hangzhou";  // 必須。バケットが配置されているリージョン。この例では、中国 (杭州) リージョンを使用します。Region を cn-hangzhou に設定します。
var endpoint = null as string;  // オプション。OSS へのアクセスに使用されるドメイン名。この例では、中国 (杭州) リージョンのエンドポイントを使用します。Endpoint を https://oss-cn-hangzhou.aliyuncs.com に設定します。
var bucket = "your Bucket name";  // 必須。バケット名。

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

// GetBucketVersioningAsync メソッドを呼び出して、バケットのバージョン管理情報を取得します。
var result = await client.GetBucketVersioningAsync(new OSS.Models.GetBucketVersioningRequest()
{
    Bucket = bucket
});

// 結果を出力します。
Console.WriteLine("GetBucketVersioning done");  // 操作が完了したことを示します。
Console.WriteLine($"StatusCode: {result.StatusCode}");  // HTTP ステータスコード。
Console.WriteLine($"RequestId: {result.RequestId}");  // リクエスト ID。この ID は、Alibaba Cloud でのトラブルシューティングに使用されます。
Console.WriteLine("Response Headers:");  // 応答ヘッダー。
result.Headers.ToList().ForEach(x => Console.WriteLine(x.Key + " : " + x.Value));  // すべての応答ヘッダーを走査して出力します。
Console.WriteLine($"Status: {result.VersioningConfiguration?.Status}");  // バケットのバージョン管理情報を出力します。

参考資料

  • バケットのバージョン管理ステータスを設定するための完全なサンプルコードについては、「PutBucketVersioning.cs」をご参照ください。

  • バケットのバージョン管理ステータスを取得するための完全なサンプルコードについては、「GetBucketVersioning.cs」をご参照ください。