Example #1
0
        /// <summary>
        /// Create a private bucket with the given name.
        /// </summary>
        /// <param name="bucketName">Name of the new bucket</param>
        /// <param name="location">Region</param>
        /// <param name="cancellationToken">Optional cancellation token to cancel the operation</param>
        /// <returns> Task </returns>
        /// <exception cref="InvalidBucketNameException">When bucketName is null</exception>
        public async Task MakeBucketAsync(string bucketName, string location  = "us-east-1",
                                          CancellationToken cancellationToken = default(CancellationToken))
        {
            if (bucketName == null)
            {
                throw new InvalidBucketNameException(bucketName, "bucketName cannot be null");
            }

            if (location == "us-east-1")
            {
                if (this.Region != string.Empty)
                {
                    location = this.Region;
                }
            }

            // Set Target URL
            Uri requestUrl = RequestUtil.MakeTargetURL(this.BaseUrl, this.Secure, location);

            var requestBuilder = new HttpRequestMessageBuilder(HttpMethod.Put, requestUrl, "/" + bucketName);

            // ``us-east-1`` is not a valid location constraint according to amazon, so we skip it.
            if (location != "us-east-1")
            {
                CreateBucketConfiguration config = new CreateBucketConfiguration(location);
                requestBuilder.AddXmlBody(config.ToXml());
            }

            var response = await this.ExecuteTaskAsync(this.NoErrorHandlers, requestBuilder, cancellationToken)
                           .ConfigureAwait(false);
        }
        internal override HttpRequestMessageBuilder BuildRequest(HttpRequestMessageBuilder requestMessageBuilder)
        {
            requestMessageBuilder.AddQueryParameter("object-lock", "");
            string body = utils.MarshalXML(new ObjectLockConfiguration(), "http://s3.amazonaws.com/doc/2006-03-01/");

            requestMessageBuilder.AddXmlBody(body);
            requestMessageBuilder.AddOrUpdateHeaderParameter("Content-Md5",
                                                             utils.getMD5SumStr(Encoding.UTF8.GetBytes(body)));
            return(requestMessageBuilder);
        }
        internal override HttpRequestMessageBuilder BuildRequest(HttpRequestMessageBuilder requestMessageBuilder)
        {
            requestMessageBuilder.AddQueryParameter("tagging", "");
            string body = this.BucketTags.MarshalXML();

            requestMessageBuilder.AddXmlBody(body);
            requestMessageBuilder.AddOrUpdateHeaderParameter("Content-Md5",
                                                             utils.getMD5SumStr(Encoding.UTF8.GetBytes(body)));

            //
            return(requestMessageBuilder);
        }
Example #4
0
        internal override HttpRequestMessageBuilder BuildRequest(HttpRequestMessageBuilder requestMessageBuilder)
        {
            VersioningConfiguration config = new VersioningConfiguration((this.CurrentVersioningStatus == VersioningStatus.Enabled));

            string body = utils.MarshalXML(config, "http://s3.amazonaws.com/doc/2006-03-01/");

            requestMessageBuilder.AddXmlBody(body);
            requestMessageBuilder.AddOrUpdateHeaderParameter("Content-Md5",
                                                             utils.getMD5SumStr(Encoding.UTF8.GetBytes(body)));

            requestMessageBuilder.AddQueryParameter("versioning", "");
            return(requestMessageBuilder);
        }
 internal override HttpRequestMessageBuilder BuildRequest(HttpRequestMessageBuilder requestMessageBuilder)
 {
     // ``us-east-1`` is not a valid location constraint according to amazon, so we skip it.
     if (!string.IsNullOrEmpty(this.Location) && this.Location != "us-east-1")
     {
         CreateBucketConfiguration config = new CreateBucketConfiguration(this.Location);
         string body = utils.MarshalXML(config, "http://s3.amazonaws.com/doc/2006-03-01/");
         requestMessageBuilder.AddXmlBody(body);
         requestMessageBuilder.AddOrUpdateHeaderParameter("Content-Md5",
                                                          utils.getMD5SumStr(Encoding.UTF8.GetBytes(body)));
     }
     if (this.ObjectLock)
     {
         requestMessageBuilder.AddOrUpdateHeaderParameter("X-Amz-Bucket-Object-Lock-Enabled", "true");
     }
     return(requestMessageBuilder);
 }
        internal override HttpRequestMessageBuilder BuildRequest(HttpRequestMessageBuilder requestMessageBuilder)
        {
            requestMessageBuilder.AddQueryParameter("object-lock", "");
            string body = utils.MarshalXML(this.LockConfiguration, "http://s3.amazonaws.com/doc/2006-03-01/");

            // Convert string to a byte array
            // byte[] bodyInBytes = Encoding.ASCII.GetBytes(body);

            // requestMessageBuilder.BodyParameters.Add("content-type", "text/xml");
            // requestMessageBuilder.SetBody(bodyInBytes);
            //
            // string body = utils.MarshalXML(config, "http://s3.amazonaws.com/doc/2006-03-01/");
            requestMessageBuilder.AddXmlBody(body);
            requestMessageBuilder.AddOrUpdateHeaderParameter("Content-Md5",
                                                             utils.getMD5SumStr(Encoding.UTF8.GetBytes(body)));
            //
            return(requestMessageBuilder);
        }