如何从Amazon Cloudfront . net API获取失效请求列表?

本文关键字:失效 获取 请求 列表 API net Amazon Cloudfront | 更新日期: 2023-09-27 18:03:38

我在API文档中引用了这一节,但我不确定我通过API发送的请求是否正确。我的代码是这样的:

public class CfListInvalidation
{
    string accessKeyID = ConfigurationManager.AppSettings["awsAccessID"];
    string secretAccessKeyID = ConfigurationManager.AppSettings["awsSecretAnswer"];
    string distributionId = ConfigurationManager.AppSettings["distributionId"];
    AmazonCloudFront client;
    public void SendCommand()
    {
        Console.WriteLine("Connecting to Amazon Cloud Front...");   
        using (client = AWSClientFactory.CreateAmazonCloudFrontClient(accessKeyID, secretAccessKeyID))
        {
            ListInvalidationsResult result = new ListInvalidationsResult();
            IAsyncResult r = client.BeginListInvalidations(new ListInvalidationsRequest
            {
                DistributionId = distributionId,                                        
            }, new AsyncCallback(CfListInvalidation.CompleteRead), result );                
        }
    }
    static void CompleteRead(IAsyncResult result)
    {
        ListInvalidationsResult r = result.AsyncState as ListInvalidationsResult;
        if (r != null && r.InvalidationList != null)
        {
            Console.WriteLine("listing items..");
            foreach (InvalidationSummary s in r.InvalidationList.Items)
            {
                Console.WriteLine(string.Format("ID: {0} - Status: {1}", s.Id, s.Status));
            }
        }
        else {
            Console.WriteLine("No Items Found");
        }
    }
}

我做错了什么吗?

如何从Amazon Cloudfront . net API获取失效请求列表?

在使用Begin*方法时,需要调用匹配的End*方法来完成请求并检索结果对象。看一看这篇指南,了解一些例子。

下面是指南中的一个简化示例,说明了基本方法:

// Begin method
client.BeginPutObject(request, CallbackWithClient, client);
// Callback
public static void CallbackWithClient(IAsyncResult asyncResult)
{
  AmazonS3Client s3Client = (AmazonS3Client) asyncResult.AsyncState;
  PutObjectResponse response = s3Client.EndPutObject(asyncResult);
  // Process the response
}