/// <summary>
 /// Sets the InvalidationBatch property
 /// </summary>
 /// <param name="invalidationBatch">The value to set for the InvalidationBatch property </param>
 /// <returns>this instance</returns>
 public CreateInvalidationRequest WithInvalidationBatch(InvalidationBatch invalidationBatch)
 {
     this.invalidationBatch = invalidationBatch;
     return this;
 }
 /// <summary>
 /// Constructs and instance of PostInvalidationRequest with an InvalidationBatch which will be 
 /// set to the InvalidationBatch property.
 /// </summary>
 /// <param name="invalidationBatch">The InvalidationBatch property that will be set to the InvalidationBatch property.</param>
 public PostInvalidationRequest(InvalidationBatch invalidationBatch)
 {
     this.invalidationBatch = invalidationBatch;
 }
            /// <summary>
            /// Invalidates objects from a CloudFront distribution.
            /// </summary>
            /// <param name="distributionId">The distribution to invalidate objects from.</param>
            /// <param name="items">The path of the objects to invalidate.</param>
            /// <param name="reference">A unique name that ensures the request can't be replayed.</param>
            /// <param name="settings">The <see cref="CloudFrontSettings"/> required to connect to Amazon CloudFront.</param>
            public string CreateInvalidation(string distributionId, IList<string> items, string reference, CloudFrontSettings settings)
            {
                //Get Reference
                if (String.IsNullOrEmpty(reference))
                {
                    reference = DateTime.Now.Ticks.ToString();
                }



                //Correct Paths
                List<string> paths = new List<string>();

                foreach (string item in items)
                {
                    if (!item.StartsWith("/"))
                    {
                        paths.Add("/" + item);
                    }
                }



                //Create Request
                InvalidationBatch batch = new InvalidationBatch()
                {
                    Paths = new Paths()
                    {
                        Items = paths.ToList(),
                        Quantity = items.Count
                    },

                    CallerReference = reference
                };

                CreateInvalidationRequest request = new CreateInvalidationRequest()
                {
                     DistributionId = distributionId,
                     InvalidationBatch = batch
                };



                //Send Request
                _Log.Verbose("Create Invalidation {0}", distributionId);

                AmazonCloudFrontClient client = this.GetClient(settings);

                CreateInvalidationResponse response = client.CreateInvalidation(request);

                if (response.HttpStatusCode == System.Net.HttpStatusCode.Created)
                {
                    return response.Invalidation.Id;
                }
                else
                {
                    _Log.Error("Error invalidating object {0}", distributionId);

                    return "";
                }
            }
 public Invalidation WithInvalidationBatch(InvalidationBatch invalidationBatch)
 {
     this.invalidationBatch = invalidationBatch;
     return this;
 }
 /// <summary>
 /// Instantiates CreateInvalidationRequest with the parameterized properties
 /// </summary>
 /// <param name="distributionId">The distribution's id.</param>
 /// <param name="invalidationBatch">The batch information for the invalidation.</param>
 public CreateInvalidationRequest(string distributionId, InvalidationBatch invalidationBatch)
 {
     _distributionId = distributionId;
     _invalidationBatch = invalidationBatch;
 }
 /// <summary>
 /// Instantiates CreateInvalidationRequest with the parameterized properties
 /// </summary>
 /// <param name="distributionId">The distribution's id.</param>
 /// <param name="invalidationBatch">The batch information for the invalidation.</param>
 public CreateInvalidationRequest(string distributionId, InvalidationBatch invalidationBatch)
 {
     _distributionId    = distributionId;
     _invalidationBatch = invalidationBatch;
 }
Beispiel #7
0
 /// <summary>
 /// Constructs and instance of PostInvalidationRequest with an InvalidationBatch which will be
 /// set to the InvalidationBatch property.
 /// </summary>
 /// <param name="invalidationBatch">The InvalidationBatch property that will be set to the InvalidationBatch property.</param>
 public PostInvalidationRequest(InvalidationBatch invalidationBatch)
 {
     this.invalidationBatch = invalidationBatch;
 }
Beispiel #8
0
 /// <summary>
 /// Sets the InvalidationBatch property of this request to the value passed in.
 /// </summary>
 /// <param name="invalidationBatch">An InvalidationBatch object that lists all the paths of objects to be invalidated.</param>
 /// <returns>The request with the InvalidationBatch property set</returns>
 public PostInvalidationRequest WithInvalidationBatch(InvalidationBatch invalidationBatch)
 {
     this.invalidationBatch = invalidationBatch;
     return(this);
 }
Beispiel #9
0
 /// <summary>
 /// Sets the InvalidationBatch property
 /// </summary>
 /// <param name="invalidationBatch">The value to set for the InvalidationBatch property </param>
 /// <returns>this instance</returns>
 public Invalidation WithInvalidationBatch(InvalidationBatch invalidationBatch)
 {
     this.invalidationBatch = invalidationBatch;
     return(this);
 }
Beispiel #10
-1
        static void Main()
        {
            var distributionId = "E24L1FD4ZU4BTF";//"EJCDLYDTUKDBE";
            var client = new AmazonCloudFrontClient();
            var batch = new InvalidationBatch()
                    .WithCallerReference(Guid.NewGuid().ToString())
                    .WithPaths(new Paths()
                        .WithQuantity(1)
                        .WithItems("/account/logon"));

            var request = new CreateInvalidationRequest()
                .WithDistributionId(distributionId)
                .WithInvalidationBatch(batch);

            var response = client.CreateInvalidation(request);
            var invalidationId = response.CreateInvalidationResult.Invalidation.Id;

            if (string.IsNullOrEmpty(invalidationId)) return;

            while (true) {
                var invalidationResponse = client.GetInvalidation(
                    new GetInvalidationRequest().WithDistributionId(distributionId).WithId(invalidationId));

                var status = invalidationResponse.GetInvalidationResult.Invalidation.Status;
                if (status != "InProgress") break;

                Console.WriteLine("Waiting 10secs before checking...");
                Thread.Sleep(10000);
            }

            Console.WriteLine("Invalidation complete!");
        }