このトピックでは、OSS の使用方法について説明します。NET SDK は、バケットの作成、オブジェクトのアップロード、オブジェクトのダウンロードなどのルーチン操作を実行します。
バケットを作成
バケットは OSS のグローバルネームスペースです。 ファイルを格納するデータコンテナーのようなものです。
次のコードを実行してバケットを作成します。
using Aliyun.OSS;
var endpoint = "<yourEndpoint>";
var accessKeyId = "<yourAccessKeyId>";
var accessKeySecret = "<yourAccessKeySecret>";
var bucketName = "<yourBucketName>";
// Create an OSSClient instance.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
try
{
// Create a bucket.
var bucket = client.CreateBucket(bucketName);
Console.WriteLine("Create bucket succeeded, {0} ", bucket.Name);
}
} catch (Exception e) {
{
Console.WriteLine("Create bucket failed, {0}", ex.Message);
}
バケットの命名ルールの詳細については、「基本概念」の命名ルールをご参照ください。
エンドポイントに関する情報は、「リージョンおよびエンドポイント」をご参照ください。
オブジェクトのアップロード
次のコードを実行してファイルを OSS にオブジェクトをアップロードします。
using Aliyun.OSS;
var endpoint = "<yourEndpoint>";
var accessKeyId = "<yourAccessKeyId>";
var accessKeySecret = "<yourAccessKeySecret>";
var bucketName = "<yourBucketName>";
var objectName = "<yourObjectName>";
var localFilename = "<yourLocalFilename>";
// Create an OSSClient instance.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
try
{
// Upload a file
var result = client.PutObject(bucketName, objectName, localFilename);
Console.WriteLine("Put object succeeded, ETag: {0} ", result.ETag);
}
} catch (Exception e) {
{
Console.WriteLine("Put object failed, {0}", ex.Message);
}
詳しくは、「Upload an object」をご参照ください。
オブジェクトのダウンロード
次のコードを実行して、指定したオブジェクトをローカルファイルにダウンロードします。
using Aliyun.OSS;
using Aliyun.OSS.Common;
var endpoint = "<yourEndpoint>";
var accessKeyId = "<yourAccessKeyId>";
var accessKeySecret = "<yourAccessKeySecret>";
var bucketName = "<yourBucketName>";
var objectName = "<yourObjectName>";
var localFilename = "<yourLocalFilename>";
var downloadFilename = "<yourDownloadFilename>";
// Create an OSSClient instance.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
try
{
client.PutObject(bucketName, objectName, localFilename);
// Download the object.
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("Get object succeeded");
}
catch (OssException ex)
{
Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
} catch (Exception e) {
{
Console.WriteLine("Failed with error info: {0}", ex.Message);
}
オブジェクトの一覧表示
次のコードを実行して、指定したバケット内のオブジェクトを一覧で表示します。
using Aliyun.OSS;
using Aliyun.OSS.Common;
var endpoint = "<yourEndpoint>";
var accessKeyId = "<yourAccessKeyId>";
var accessKeySecret = "<yourAccessKeySecret>";
var bucketName = "<yourBucketName>";
// Create an OSSClient instance.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
try
{
var objects = new List<string>();
ObjectListing result = null;
String nextmarker = string. empty;
do
{
var listObjectsRequest = new ListObjectsRequest(bucketName)
{
Marker = nextMarker,
};
// List objects.
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("List objects of bucket:{0} succeeded ", bucketName);
}
catch (OssException ex)
{
Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
} catch (Exception e) {
{
Console.WriteLine("Failed with error info: {0}", ex.Message);
}
オブジェクトの削除
指定したオブジェクトを削除するには、次のコードを実行します。
using Aliyun.OSS;
var endpoint = "<yourEndpoint>";
var accessKeyId = "<yourAccessKeyId>";
var accessKeySecret = "<yourAccessKeySecret>";
var bucketName = "<yourBucketName>";
var objectName = "<yourObjectName>";
// Create an OSSClient instance.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
try
{
// Delete an object.
client.DeleteObject(bucketName, objectName);
Console.WriteLine("Delete object succeeded");
}
} catch (Exception e) {
{
Console.WriteLine("Delete object failed, {0}", ex.Message);
}