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

Object Storage Service:シンボリックリンクの管理 (C# SDK V2)

最終更新日:Nov 09, 2025

シンボリックリンク機能を使用すると、バケット内で頻繁に使用されるオブジェクトに便利にアクセスできます。シンボリックリンクを作成すると、Windows のショートカットと同様の方法でオブジェクトにアクセスするために使用できます。このトピックでは、OSS C# SDK を使用してシンボリックリンクを作成および取得する方法について説明します。

注意

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

  • シンボリックリンクを作成するには、oss:PutObject 権限が必要です。シンボリックリンクを取得するには、oss:GetObject 権限が必要です。詳細については、「RAM ユーザーへのカスタムアクセスポリシーの付与」をご参照ください。

サンプルコード

シンボリックリンクの作成

次のコードを使用して、シンボリックリンクを作成できます。

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 bucket = "your bucket name";  // 必須。バケット名。
var key = "your object name";  // 必須。オブジェクト名。
var target = "your symlink 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); 

// PutSymlinkAsync メソッドを呼び出して、バケット内のオブジェクトを指すシンボリックリンクを作成します。
var result = await client.PutSymlinkAsync(new()
{
    Bucket = bucket,
    Key = key,
    SymlinkTarget = target,
});

// 結果を出力します。
Console.WriteLine("PutSymlink done");  // 操作が完了したことを示します。
Console.WriteLine($"StatusCode: {result.StatusCode}");  // HTTP ステータスコード。
Console.WriteLine($"RequestId: {result.RequestId}");  // リクエスト 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";  // 必須。バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。
var endpoint = null as string;  // オプション。OSS へのアクセスに使用するドメイン名を指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var bucket = "your bucket name";  // 必須。バケット名。
var key = "your object 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); 

// GetSymlinkAsync メソッドを呼び出して、ターゲットオブジェクトのシンボリックリンク情報を取得します。
var result = await client.GetSymlinkAsync(new()
{
    Bucket = bucket,
    Key = key
});

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

関連ドキュメント

  • シンボリックリンクを作成する方法の完全なサンプルコードについては、「PutSymlink.cs」をご参照ください。

  • シンボリックリンクを取得する方法の完全なサンプルコードについては、「GetSymlink.cs」をご参照ください。