コード例 #1
0
        /// <summary>
        /// Initiates the asynchronous execution of the UpdateDistribution operation.
        /// <seealso cref="Amazon.CloudFront.IAmazonCloudFront"/>
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the UpdateDistribution operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public Task <UpdateDistributionResponse> UpdateDistributionAsync(UpdateDistributionRequest request, CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = new UpdateDistributionRequestMarshaller();
            var unmarshaller = UpdateDistributionResponseUnmarshaller.Instance;

            return(Invoke <IRequest, UpdateDistributionRequest, UpdateDistributionResponse>(request, marshaller, unmarshaller, signer, cancellationToken));
        }
コード例 #2
0
        internal UpdateDistributionResponse UpdateDistribution(UpdateDistributionRequest request)
        {
            var marshaller   = new UpdateDistributionRequestMarshaller();
            var unmarshaller = UpdateDistributionResponseUnmarshaller.Instance;

            return(Invoke <UpdateDistributionRequest, UpdateDistributionResponse>(request, marshaller, unmarshaller));
        }
        /// <summary>
        /// Allow only few updations to cloudfront like SSL
        /// </summary>
        /// <param name="distributionId"></param>
        /// <param name="etag"></param>
        /// <returns></returns>
        public static UpdateDistributionResponse UpdateCloudFront(string distributionId, string etag, ViewerCertificate viewerCertificate = null)
        {
            try
            {
                if (String.IsNullOrEmpty(distributionId) || String.IsNullOrEmpty(etag))
                {
                    return(null);
                }

                var client = new AmazonCloudFrontClient(RegionEndpoint.APSouth1);

                var request = new UpdateDistributionRequest()
                {
                    Id                 = distributionId,
                    IfMatch            = etag,
                    DistributionConfig = new DistributionConfig()
                    {
                    }
                };

                if (viewerCertificate != null)
                {
                    request.DistributionConfig.ViewerCertificate = viewerCertificate;
                }

                return(client.UpdateDistributionAsync(request).Result);
            }
            catch (Exception ex)
            {
                //TODO - log the exception
            }
            return(null);
        }
コード例 #4
0
        public static string AddDomainToDistribution(string AWSAccesKey, string AWSSecretKey, string distributionId, string domainName)
        {
            try
            {
                if (String.IsNullOrEmpty(distributionId))
                {
                    throw new Exception("distributionId cannot be null");
                }
                if (String.IsNullOrEmpty(domainName))
                {
                    throw new Exception("domain name cannnot be null");
                }

                domainName = domainName.Trim(' ');
                domainName = domainName.ToLower();

                using (AmazonCloudFrontClient cfClient = new AmazonCloudFrontClient(AWSAccesKey, AWSSecretKey, RegionEndpoint.APSouth1))
                {
                    GetDistributionConfigRequest distributionConfig = new GetDistributionConfigRequest
                    {
                        Id = distributionId
                    };
                    var config = cfClient.GetDistributionConfigAsync(distributionConfig).Result;

                    //  Set a new config
                    DistributionConfig newConfig = config.DistributionConfig;
                    if (newConfig.Aliases.Items.Contains(domainName))
                    {
                        return("already present");
                    }
                    newConfig.Aliases.Items.Add(domainName);
                    newConfig.Aliases.Quantity += 1;

                    //  Update
                    UpdateDistributionRequest req = new UpdateDistributionRequest
                    {
                        Id                 = distributionId,
                        IfMatch            = config.ETag,
                        DistributionConfig = newConfig
                    };

                    var response = cfClient.UpdateDistributionAsync(req).Result;
                }

                return("success");
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
コード例 #5
0
        internal UpdateDistributionResponse UpdateDistribution(UpdateDistributionRequest request)
        {
            var task = UpdateDistributionAsync(request);

            try
            {
                return(task.Result);
            }
            catch (AggregateException e)
            {
                ExceptionDispatchInfo.Capture(e.InnerException).Throw();
                return(null);
            }
        }
コード例 #6
0
 public UpdateDistributionResponse SaveDistribution(UpdateDistributionRequest info)
 {
     return(disbll.SaveDistribution(info));
 }
コード例 #7
0
ファイル: UserBll.cs プロジェクト: shang123932/SwiftExpress
 /// <summary>
 /// 修改配送
 /// </summary>
 /// <returns></returns>
 public UpdateDistributionResponse SaveDistribution(UpdateDistributionRequest request)
 {
     return(ApiRequestHelper.Post <UpdateDistributionRequest, UpdateDistributionResponse>(request));
 }