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