sdk/Commands/CreateBucketCommand.cs (87 lines of code) (raw):

/* * Copyright (C) Alibaba Cloud Computing * All rights reserved. * */ using System; using System.Collections.Generic; using System.IO; using Aliyun.OSS.Common.Communication; using Aliyun.OSS.Transform; using Aliyun.OSS.Util; namespace Aliyun.OSS.Commands { internal class CreateBucketCommand : OssCommand { private readonly string _bucketName; private readonly CreateBucketRequest _createBucketRequest; protected override HttpMethod Method { get { return HttpMethod.Put; } } protected override string Bucket { get { return _bucketName; } } protected override Stream Content { get { return StorageClass == null ? null : SerializerFactory.GetFactory().CreateCreateBucketSerialization() .Serialize(_createBucketRequest); } } protected override IDictionary<string, string> Headers { get { var headers = base.Headers; if (ACL != null && ACL != CannedAccessControlList.Default) { headers[OssHeaders.OssCannedAcl] = EnumUtils.GetStringValue(ACL); } return headers; } } protected StorageClass? StorageClass { get; set; } protected CannedAccessControlList? ACL { get; set; } private CreateBucketCommand(IServiceClient client, Uri endpoint, ExecutionContext context, string bucketName, StorageClass? storageClass) : base(client, endpoint, context) { OssUtils.CheckBucketName(bucketName); _bucketName = bucketName; StorageClass = storageClass; ACL = null; if (storageClass != null) { _createBucketRequest = new CreateBucketRequest(bucketName, storageClass.Value, CannedAccessControlList.Default); } } public static CreateBucketCommand Create(IServiceClient client, Uri endpoint, ExecutionContext context, string bucketName, StorageClass? storageClass = null) { return new CreateBucketCommand(client, endpoint, context, bucketName, storageClass); } private CreateBucketCommand(IServiceClient client, Uri endpoint, ExecutionContext context, string bucketName, CreateBucketRequest createBucketRequest) : base(client, endpoint, context) { OssUtils.CheckBucketName(bucketName); _bucketName = bucketName; _createBucketRequest = createBucketRequest; StorageClass = createBucketRequest.StorageClass; ACL = createBucketRequest.ACL; } public static CreateBucketCommand Create(IServiceClient client, Uri endpoint, ExecutionContext context, string bucketName, CreateBucketRequest createBucketRequest) { return new CreateBucketCommand(client, endpoint, context, bucketName, createBucketRequest); } } }