创建桶

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的名字已经被其他用户使用。