このトピックでは、Object Storage Service (OSS) C# ソフトウェア開発キット (SDK) を使用した一般的なストレージ操作のクイックスタートガイドを説明します。SDK のインストール、アクセス認証情報の設定、およびバケットの作成、オブジェクトのアップロード、ダウンロード、リスト表示、削除などの基本操作の実行方法を学びます。
注意事項
OSS のリージョンとエンドポイントのマッピングに関する詳細については、「リージョンとエンドポイント」をご参照ください。
認証情報の設定
Alibaba Cloud アカウントを登録し、本人確認を完了していることを確認してください。
OSS の管理権限を持つ RAM ユーザーの AccessKey ペアを作成する。
RAM ユーザーの AccessKey ペアを使用して環境変数を設定します。
Linux
コマンドラインインターフェイスで、次のコマンドを実行して、環境変数の設定を
~/.bashrcファイルに追加します。echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc次のコマンドを実行して変更を適用します。
source ~/.bashrc次のコマンドを実行して、環境変数が設定されているか確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
macOS
ターミナルで次のコマンドを実行して、デフォルトのシェルタイプを表示します。
echo $SHELLデフォルトのシェルタイプに基づいて、次の操作を実行します。
Zsh
次のコマンドを実行して、環境変数の設定を
~/.zshrcファイルに追加します。echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc次のコマンドを実行して変更を適用します。
source ~/.zshrc次のコマンドを実行して、環境変数が設定されているか確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
Bash
次のコマンドを実行して、環境変数の設定を
~/.bash_profileファイルに追加します。echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profile次のコマンドを実行して変更を適用します。
source ~/.bash_profile次のコマンドを実行して、環境変数が設定されているか確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
Windows
CMD
コマンドプロンプトで次のコマンドを実行します。
setx OSS_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID" setx OSS_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"次のコマンドを実行して、環境変数が設定されているか確認します。
echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET%
PowerShell
PowerShell で次のコマンドを実行します。
[Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)次のコマンドを実行して、環境変数が設定されているか確認します。
[Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
システム環境変数を変更した後は、IDE、コマンドラインインターフェイス、その他のデスクトップアプリケーション、バックグラウンドサービスなど、開発環境を再起動またはリフレッシュして最新の変数を読み込みます。
SDK のインストール
Windows へのインストール
NuGet を使用したインストール
Visual Studio に NuGet がインストールされていない場合は、NuGet をインストールします。
Visual Studio でプロジェクトを作成または開きます。 を選択します。
aliyun.oss.sdk を検索します。検索結果で、Aliyun.OSS.SDK (.NET Framework 用) または Aliyun.OSS.SDK.NetCore (.Net Core 用) を見つけます。最新バージョンを選択し、[インストール] をクリックします。
DLL を参照したインストール
.NET SDK パッケージをダウンロードして解凍します。
aliyun-oss-sdk プロジェクトをリリースモードでコンパイルして DLL を生成します。
Visual Studio で、[ソリューションエクスプローラー] を開きます。プロジェクトを選択し、プロジェクト名を右クリックして、 を選択します。表示されるダイアログボックスで、[参照] をクリックします。
DLL が生成された bin ディレクトリを見つけ、Aliyun.OSS.dll ファイルを選択し、[OK] をクリックします。
プロジェクトのインポートによるインストール
SDK パッケージまたはソースコードを GitHub からダウンロードし、ソースからインストールする場合は、次の手順に従います。
Visual Studio で、[ソリューション] を右クリックし、表示されるメニューで [既存プロジェクトの追加] をクリックします。
表示されるダイアログボックスで、aliyun-oss-sdk.csproj ファイルを選択し、[開く] をクリックします。
プロジェクト名を右クリックし、 を選択します。表示されるダイアログボックスで、[プロジェクト] タブをクリックし、aliyun-oss-sdk プロジェクトを選択して [OK] をクリックします。
UNIX/macOS へのインストール
NuGet を使用してインストールするには、次の手順に従います。
Xamarin でプロジェクトを作成または開きます。[ツール] > [NuGet パッケージの追加] を選択します。
Aliyun.OSS.SDK または Aliyun.OSS.SDK.NetCore を検索します。最新バージョンを選択し、[パッケージの追加] をクリックしてプロジェクトに追加します。
基本的な使用方法
以下のサンプルコードは、バケットの作成、オブジェクトのアップロード、ダウンロード、リスト表示、削除の方法を示しています。
バケットの作成
using Aliyun.OSS;
// yourEndpoint を、バケットが配置されているリージョンのエンドポイントに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var endpoint = "yourEndpoint";
// 環境変数からアクセス認証情報を取得します。このサンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// yourBucketName をバケットの名前に設定します。
var bucketName = "yourBucketName";
// ClientConfiguration インスタンスを作成し、必要に応じてデフォルトのパラメーターを変更します。
var conf = new ClientConfiguration();
// 署名バージョンを v4 に設定します。
conf.SignatureVersion = SignatureVersion.V4;
// OssClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// バケットを作成します。
var bucket = client.CreateBucket(bucketName);
Console.WriteLine("バケットの作成に成功しました、{0} ", bucket.Name);
}
catch (Exception ex)
{
Console.WriteLine("バケットの作成に失敗しました、{0}", ex.Message);
}オブジェクトのアップロード
using Aliyun.OSS;
// yourEndpoint を、バケットが配置されているリージョンのエンドポイントに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var endpoint = "yourEndpoint";
// 環境変数からアクセス認証情報を取得します。このサンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// バケット名を指定します (例: examplebucket)。
var bucketName = "examplebucket";
// オブジェクトの完全なパスを指定します。完全なパスにバケット名を含めることはできません (例: exampledir/exampleobject.txt)。
var objectName = "exampledir/exampleobject.txt";
// ローカルファイルの完全なパスを指定します (例: D:\\localpath\\examplefile.txt)。ローカルパスを指定しない場合、サンプルコードが存在するプロジェクトに対応するローカルパスからファイルがアップロードされます。
var localFilename = "D:\\localpath\\examplefile.txt";
// ClientConfiguration インスタンスを作成し、必要に応じてデフォルトのパラメーターを変更します。
var conf = new ClientConfiguration();
// 署名バージョンを v4 に設定します。
conf.SignatureVersion = SignatureVersion.V4;
// OssClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// ファイルをアップロードします。
var result = client.PutObject(bucketName, objectName, localFilename);
Console.WriteLine("オブジェクトのアップロードに成功しました、ETag: {0} ", result.ETag);
}
catch (Exception ex)
{
Console.WriteLine("オブジェクトのアップロードに失敗しました、{0}", ex.Message);
}ファイルのダウンロード
using Aliyun.OSS;
using Aliyun.OSS.Common;
// yourEndpoint を、バケットが配置されているリージョンのエンドポイントに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var endpoint = "yourEndpoint";
// 環境変数からアクセス認証情報を取得します。このサンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// バケット名を指定します (例: examplebucket)。
var bucketName = "examplebucket";
// オブジェクトの完全なパスを指定します。完全なパスにバケット名を含めることはできません (例: exampledir/exampleobject.txt)。
var objectName = "exampledir/exampleobject.txt";
// オブジェクトを examplefile.txt という名前のローカルファイルにダウンロードし、指定されたローカルパス (D:\\localpath) に保存します。指定されたローカルファイルが存在する場合は上書きされ、存在しない場合は作成されます。
// ローカルパスを指定しない場合、ダウンロードされたファイルは、サンプルコードが存在するプロジェクトに対応するローカルパスに保存されます。
var downloadFilename = "D:\\localpath\\examplefile.txt";
// ClientConfiguration インスタンスを作成し、必要に応じてデフォルトのパラメーターを変更します。
var conf = new ClientConfiguration();
// 署名バージョンを v4 に設定します。
conf.SignatureVersion = SignatureVersion.V4;
// OssClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// ファイルをダウンロードします。
var result = client.GetObject(bucketName, objectName);
using (var requestStream = result.Content)
{
using (var fs = File.Open(downloadFilename, FileMode.OpenOrCreate))
{
int length = 4 * 1024;
var buf = new byte[length];
do
{
length = requestStream.Read(buf, 0, length);
fs.Write(buf, 0, length);
} while (length != 0);
}
}
Console.WriteLine("オブジェクトの取得に成功しました");
}
catch (OssException ex)
{
Console.WriteLine("失敗しました。エラーコード: {0}、エラー情報: {1}。\nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
Console.WriteLine("失敗しました。エラー情報: {0}", ex.Message);
}オブジェクトのリスト表示
using Aliyun.OSS;
using Aliyun.OSS.Common;
// yourEndpoint を、バケットが配置されているリージョンのエンドポイントに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var endpoint = "yourEndpoint";
// 環境変数からアクセス認証情報を取得します。このサンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// バケット名を指定します (例: examplebucket)。
var bucketName = "examplebucket";
// ClientConfiguration インスタンスを作成し、必要に応じてデフォルトのパラメーターを変更します。
var conf = new ClientConfiguration();
// 署名バージョンを v4 に設定します。
conf.SignatureVersion = SignatureVersion.V4;
// OssClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
var objects = new List<string>();
ObjectListing result = null;
string nextMarker = string.Empty;
do
{
var listObjectsRequest = new ListObjectsRequest(bucketName)
{
Marker = nextMarker,
};
// オブジェクトをリスト表示します。
result = client.ListObjects(listObjectsRequest);
foreach (var summary in result.ObjectSummaries)
{
Console.WriteLine(summary.Key);
objects.Add(summary.Key);
}
nextMarker = result.NextMarker;
} while (result.IsTruncated);
Console.WriteLine("バケット {0} のオブジェクトのリスト表示に成功しました ", bucketName);
}
catch (OssException ex)
{
Console.WriteLine("失敗しました。エラーコード: {0}、エラー情報: {1}。\nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
Console.WriteLine("失敗しました。エラー情報: {0}", ex.Message);
}ファイルの削除
using Aliyun.OSS;
// yourEndpoint を、バケットが配置されているリージョンのエンドポイントに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var endpoint = "yourEndpoint";
// 環境変数からアクセス認証情報を取得します。このサンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// バケット名を指定します (例: examplebucket)。
var bucketName = "examplebucket";
// オブジェクトの完全なパスを指定します。完全なパスにバケット名を含めることはできません (例: exampledir/exampleobject.txt)。
var objectName = "exampledir/exampleobject.txt";
// ClientConfiguration インスタンスを作成し、必要に応じてデフォルトのパラメーターを変更します。
var conf = new ClientConfiguration();
// 署名バージョンを v4 に設定します。
conf.SignatureVersion = SignatureVersion.V4;
// OssClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// オブジェクトを削除します。
client.DeleteObject(bucketName, objectName);
Console.WriteLine("オブジェクトの削除に成功しました");
}
catch (Exception ex)
{
Console.WriteLine("オブジェクトの削除に失敗しました、{0}", ex.Message);
}サンプルコードの実行
テストプロジェクトのディレクトリに main.cs ファイルを作成します。必要なサンプルコードを main.cs ファイルにコピーします。
次のコマンドの yourRegion、yourBucketName、yourObjectName を実際の値に置き換えます。yourRegion を、バケットが配置されているリージョンに設定します。たとえば、中国 (杭州) の場合は cn-hangzhou に設定します。
dotnet script main.cs -- <yourRegion> <yourBucketName> <yourObjectName>
関連ドキュメント
OSS C# SDK の詳細については、「公式ドキュメント」をご参照ください。
その他のサンプルコードについては、「GitHub サンプル」をご参照ください。

