/// <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); }
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); }