コード例 #1
0
        /// <summary>
        /// This method first adds and then checks the configuration for a
        /// static website in an Amazon S3 bucket.
        /// </summary>
        /// <param name="client">The Amazon S3 client used to add and then check the
        /// website configuration.</param>
        /// <param name="bucketName">The name of the bucket that will serve as
        /// a static website.</param>
        /// <param name="indexDocumentSuffix">The index document suffix for the
        /// website.</param>
        /// <param name="errorDocument">The name of the error document for the
        /// static website.</param>
        public static async Task AddWebsiteConfigurationAsync(
            IAmazonS3 client,
            string bucketName,
            string indexDocumentSuffix,
            string errorDocument)
        {
            try
            {
                // Put the website configuration.
                PutBucketWebsiteRequest putRequest = new PutBucketWebsiteRequest()
                {
                    BucketName           = bucketName,
                    WebsiteConfiguration = new WebsiteConfiguration()
                    {
                        IndexDocumentSuffix = indexDocumentSuffix,
                        ErrorDocument       = errorDocument,
                    },
                };
                PutBucketWebsiteResponse response = await client.PutBucketWebsiteAsync(putRequest);

                // Get the website configuration.
                GetBucketWebsiteRequest getRequest = new GetBucketWebsiteRequest()
                {
                    BucketName = bucketName,
                };
                GetBucketWebsiteResponse getResponse = await client.GetBucketWebsiteAsync(getRequest);

                Console.WriteLine($"Index document: {getResponse.WebsiteConfiguration.IndexDocumentSuffix}");
                Console.WriteLine($"Error document: {getResponse.WebsiteConfiguration.ErrorDocument}");
            }
            catch (AmazonS3Exception ex)
            {
                Console.WriteLine($"Error encountered on server. Message:'{ex.Message}' when writing an object.");
            }
        }
コード例 #2
0
        public async Task <GenericResponse> AddWebsiteConfigurationAsync(string bucketName, string indexDocumentSuffix, string errorDocument)
        {
            var result = new GenericResponse();

            try
            {
                // 1. Put the website configuration.
                PutBucketWebsiteRequest putRequest = new PutBucketWebsiteRequest()
                {
                    BucketName           = bucketName,
                    WebsiteConfiguration = new WebsiteConfiguration()
                    {
                        IndexDocumentSuffix = indexDocumentSuffix,
                        ErrorDocument       = errorDocument
                    }
                };
                PutBucketWebsiteResponse response = await _client.PutBucketWebsiteAsync(putRequest);

                // 2. Get the website configuration.
                GetBucketWebsiteRequest getRequest = new GetBucketWebsiteRequest()
                {
                    BucketName = bucketName
                };
                GetBucketWebsiteResponse getResponse = await _client.GetBucketWebsiteAsync(getRequest);

                Console.WriteLine("Index document: {0}", getResponse.WebsiteConfiguration.IndexDocumentSuffix);
                Console.WriteLine("Error document: {0}", getResponse.WebsiteConfiguration.ErrorDocument);
                result.Text   = "SUCCESS";
                result.Value  = bucketName;
                result.Status = "OK";
            }
            catch (AmazonS3Exception e)
            {
                result.Text   = e.Message;
                result.Value  = e.StackTrace;
                result.Status = "ERROR";
            }
            catch (Exception e)
            {
                result.Text   = e.Message;
                result.Value  = e.StackTrace;
                result.Status = "ERROR";
            }
            return(result);
        }
コード例 #3
0
        private static void GetBucketWebsite()
        {
            try
            {
                GetBucketWebsiteRequest request = new GetBucketWebsiteRequest()
                {
                    BucketName = bucketName
                };
                GetBucketWebsiteResponse response = client.GetBucketWebsite(request);

                Console.WriteLine("GetBucketWebsite response: {0}", response.StatusCode);
                Console.WriteLine("GetBucketWebsite website configuration error document: {0}", response.Configuration.ErrorDocument);
                Console.WriteLine("GetBucketWebsite website configuration index document: {0}", response.Configuration.ErrorDocument);
            }
            catch (ObsException ex)
            {
                Console.WriteLine("Exception errorcode: {0}, when get bucket website.", ex.ErrorCode);
                Console.WriteLine("Exception errormessage: {0}", ex.ErrorMessage);
            }
        }
コード例 #4
0
        static async Task AddWebsiteConfigurationAsync(string bucketName,
                                                       string indexDocumentSuffix,
                                                       string errorDocument)
        {
            try
            {
                // 1. Put the website configuration.
                PutBucketWebsiteRequest putRequest = new PutBucketWebsiteRequest()
                {
                    BucketName           = bucketName,
                    WebsiteConfiguration = new WebsiteConfiguration()
                    {
                        IndexDocumentSuffix = indexDocumentSuffix,
                        ErrorDocument       = errorDocument
                    }
                };
                PutBucketWebsiteResponse response = await client.PutBucketWebsiteAsync(putRequest);

                // 2. Get the website configuration.
                GetBucketWebsiteRequest getRequest = new GetBucketWebsiteRequest()
                {
                    BucketName = bucketName
                };
                GetBucketWebsiteResponse getResponse = await client.GetBucketWebsiteAsync(getRequest);

                Console.WriteLine("Index document: {0}", getResponse.WebsiteConfiguration.IndexDocumentSuffix);
                Console.WriteLine("Error document: {0}", getResponse.WebsiteConfiguration.ErrorDocument);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }
コード例 #5
0
        public void TestBucketWebsite()
        {
            try
            {
                PutBucketWebsiteRequest putRequest = new PutBucketWebsiteRequest(bucket);

                putRequest.SetIndexDocument("index.html");
                putRequest.SetErrorDocument("eroror.html");
                putRequest.SetRedirectAllRequestTo("https");

                var rule = new WebsiteConfiguration.RoutingRule();
                rule.contidion = new WebsiteConfiguration.Contidion();
                // HttpErrorCodeReturnedEquals 与 KeyPrefixEquals 必选其一
                // 只支持配置4XX返回码,例如403或404
                rule.contidion.httpErrorCodeReturnedEquals = 404;
                // rule.contidion.keyPrefixEquals = "test.html";

                rule.redirect          = new WebsiteConfiguration.Redirect();
                rule.redirect.protocol = "https";
                // ReplaceKeyWith 与 ReplaceKeyPrefixWith 必选其一
                // rule.redirect.replaceKeyPrefixWith = "aaa";
                rule.redirect.replaceKeyWith = "bbb";
                putRequest.SetRoutingRules(new List <WebsiteConfiguration.RoutingRule>()
                {
                    rule
                });

                PutBucketWebsiteResult putResult = cosXml.PutBucketWebsite(putRequest);

                Assert.IsTrue(putResult.httpCode == 200);

                QCloudServer.TestWithServerFailTolerance(() =>
                {
                    GetBucketWebsiteRequest getRequest = new GetBucketWebsiteRequest(bucket);

                    GetBucketWebsiteResult getResult = cosXml.GetBucketWebsite(getRequest);
                    // Console.WriteLine(getResult.GetResultInfo());
                    Assert.IsNotEmpty((getResult.GetResultInfo()));

                    WebsiteConfiguration configuration = getResult.websiteConfiguration;

                    Assert.NotNull(configuration);
                    Assert.NotNull(configuration.indexDocument);
                    Assert.NotNull(configuration.indexDocument.suffix);
                    Assert.NotNull(configuration.errorDocument);
                    Assert.NotNull(configuration.redirectAllRequestTo);
                    Assert.NotNull(configuration.redirectAllRequestTo.protocol);
                    Assert.NotZero(configuration.routingRules.Count);
                    Assert.NotNull(configuration.routingRules[0].contidion);
                    Assert.NotNull(configuration.routingRules[0].contidion.httpErrorCodeReturnedEquals);
                    // Assert.NotNull(configuration.routingRules[0].contidion.keyPrefixEquals);
                    Assert.NotNull(configuration.routingRules[0].redirect);
                    Assert.NotNull(configuration.routingRules[0].redirect.protocol);
                    // Assert.NotNull(configuration.routingRules[0].redirect.replaceKeyPrefixWith);
                    Assert.NotNull(configuration.routingRules[0].redirect.replaceKeyWith);

                    DeleteBucketWebsiteRequest deleteRequest = new DeleteBucketWebsiteRequest(bucket);

                    DeleteBucketWebsiteResult deleteResult = cosXml.DeleteBucketWebsite(deleteRequest);

                    Assert.IsTrue(deleteResult.IsSuccessful());
                }
                                                         );
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                Console.WriteLine("CosClientException: " + clientEx.Message);
                Assert.Fail();
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                Assert.Fail();
            }
        }
コード例 #6
0
 public void GetBucketWebsiteAsync(GetBucketWebsiteRequest request, OnSuccessCallback <CosResult> successCallback, OnFailedCallback failCallback)
 {
     Schedue(request, new Model.Bucket.GetBucketWebsiteResult(), successCallback, failCallback);
 }
コード例 #7
0
 public GetBucketWebsiteResult GetBucketWebsite(GetBucketWebsiteRequest request)
 {
     return((Model.Bucket.GetBucketWebsiteResult)Excute(request, new Model.Bucket.GetBucketWebsiteResult()));
 }
コード例 #8
0
 public Task <GetBucketWebsiteResponse> GetBucketWebsiteAsync(GetBucketWebsiteRequest request, CancellationToken cancellationToken = default)
 {
     throw new NotImplementedException();
 }
コード例 #9
0
 /// <summary>
 /// 获取桶的Website(托管)配置。
 /// </summary>
 /// <param name="request">获取桶的Website(托管)配置的请求参数。</param>
 /// <returns>获取桶的Website(托管)配置响应结果。</returns>
 public GetBucketWebsiteResponse GetBucketWebsite(GetBucketWebsiteRequest request)
 {
     return(this.DoRequest <GetBucketWebsiteRequest, GetBucketWebsiteResponse>(request));
 }
コード例 #10
0
 public GetBucketWebsiteResponse GetBucketWebsite(GetBucketWebsiteRequest request)
 {
     throw new NotImplementedException();
 }
コード例 #11
0
 /// <summary>
 /// Start the asynchronous request for obtaining the website hosting configuration.
 /// </summary>
 /// <param name="request">Parameters in a request for obtaining bucket website hosting configuration</param>
 /// <param name="callback">Asynchronous request callback function</param>
 /// <param name="state">Asynchronous request status object</param>
 /// <returns>Response to the asynchronous request</returns>
 public IAsyncResult BeginGetBucketWebsite(GetBucketWebsiteRequest request, AsyncCallback callback, object state)
 {
     return(this.BeginDoRequest <GetBucketWebsiteRequest>(request, callback, state));
 }
コード例 #12
0
 public void GetBucketWebsiteAsync(GetBucketWebsiteRequest request, AmazonServiceCallback <GetBucketWebsiteRequest, GetBucketWebsiteResponse> callback, AsyncOptions options = null)
 {
     throw new System.NotImplementedException();
 }
コード例 #13
0
        private async Task <GetBucketWebsiteResponse> getBucketWebsite(AmazonS3Client client, GetBucketWebsiteRequest request)
        {
            GetBucketWebsiteResponse response = await client.GetBucketWebsiteAsync(request);

            return(response);
        }