创建桶
PutBucket操作用于创建bucket,每个用户可以拥有多个bucket。Bucket的名称在媒体存储范围内必须是全局唯一的,一旦创建之后无法修改名称。Bucket的创建者默认是bucket的所有者,对bucket拥有FULL_CONTROL权限,可以通过设置参数的方式为其他用户配置创建bucket的权限。bucket的命名规范如下:
- 只能使用小写字母、数字和短横线(-);
- 必须以小写字母或者数字开头和结尾;
- 长度必须在3-63字节之间。
代码示例:
using System;
using System.Threading.Tasks;
using Amazon.Runtime;
using Amazon.S3;
using Amazon.S3.Model;
namespace DotNetSDK.BucketOperation
{
public class PutBucketExample
{
public static async Task PutBucket()
{
var accessKey = "YOUR_ACCESS_KEY";
var secretKey = "YOUR_SECRET_KEY";
var endpoint = "YOUR_ENDPOINT";
var bucketName = "EXAMPLE_BUCKET";
try
{
var credentials = new BasicAWSCredentials(accessKey, secretKey);
var conf = new AmazonS3Config
{
ServiceURL = endpoint
};
var s3Client = new AmazonS3Client(credentials, conf);
var putBucketRequest = new PutBucketRequest()
{
BucketName = bucketName
};
var result = await s3Client.PutBucketAsync(putBucketRequest);
if (result.HttpStatusCode != System.Net.HttpStatusCode.OK)
{
Console.WriteLine("fail to create bucket {0}, HttpStatusCode:{1}, ErrorCode:{2}.", bucketName, (int) result.HttpStatusCode, result.HttpStatusCode);
return;
}
Console.WriteLine("create bucket {0} success.", bucketName);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
PutBucketRequest可设置的参数如下:
参数 | 类型 | 说明 | 是否必要 |
---|---|---|---|
BucketName | string | 创建bucket的名称。 | 是 |
响应结果:
HTTP状态码 | 响应码 | 描述 |
---|---|---|
200 | OK | 操作成功。 |
400 | BadRequest | 创建bucekt的名字不合法。 |
403 | Forbidden | 用户没有权限执行操作。 |
409 | Conflict | 当前创建的bucekt的名字已经被其他用户使用。 |