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

Object Storage Service:ファイルをローカルディスクにダウンロードする (C# SDK V2)

最終更新日:Nov 09, 2025

このトピックでは、簡易ダウンロードメソッドを使用してバケットからローカルディスクにオブジェクトをダウンロードする方法について説明します。このメソッドは使いやすく、ローカルディスクにオブジェクトを迅速にダウンロードするのに適しています。

注意事項

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

権限

デフォルトでは、Alibaba Cloud アカウントは完全な権限を持っています。Alibaba Cloud アカウント下の RAM ユーザーまたは RAM ロールは、デフォルトでは何の権限も持っていません。Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたはバケットポリシーを通じて操作権限を付与する必要があります。

API

アクション

定義

GetObject

oss:GetObject

オブジェクトをダウンロードします。

oss:GetObjectVersion

オブジェクトをダウンロードする際に、versionId を通じてオブジェクトのバージョンを指定する場合、この権限が必要です。

kms:Decrypt

オブジェクトをダウンロードする際に、オブジェクトのメタデータに X-Oss-Server-Side-Encryption: KMS が含まれている場合、この権限が必要です。

サンプルコード

次のコードを使用して、バケットからローカルディスクにオブジェクトをダウンロードできます。

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

var region = "cn-hangzhou";  // 必須。バケットが配置されているリージョンを指定します。この例では、中国 (杭州) が使用されます。リージョンを cn-hangzhou に設定します。
var bucket = "your bucket name";  // 必須。宛先バケットの名前を指定します。
var endpoint = null as string;  // オプション。OSS へのアクセスに使用されるエンドポイントを指定します。この例では、中国 (杭州) が使用されます。エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var key = "your object name";  // 必須。ダウンロードするオブジェクトの名前を指定します。フォーマット: フォルダ/オブジェクト名。
var filePath = "your file path";  // 必須。ローカルディスクにダウンロードするファイルのパスを指定します。

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

// GetObjectToFileAsync メソッドを呼び出して、OSS オブジェクトをローカルディスクに直接ストリーミングします。これにより、大きなファイルがメモリを過剰に占有するのを防ぎます。
var result = await client.GetObjectToFileAsync(new OSS.Models.GetObjectRequest()
{
    Bucket = bucket,
    Key = key,
}, filePath);

// アップロード結果を出力します。
Console.WriteLine("GetObjectToFile 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));  // すべての応答ヘッダーを走査して出力します。

関連ドキュメント

オブジェクトをローカルディスクにダウンロードするための完全なサンプルコードについては、「GetObjectToFile.cs」をご参照ください。