5

C#/.NET で CloudFront オブジェクトを無効にして、次の例外を取得しようとしています:

リクエストに無効な無効化パスが 1 つ以上含まれています。

私の機能:

public bool InvalidateFiles(string[] arrayofpaths)
{
    for (int i = 0; i < arrayofpaths.Length; i++)
    {
        arrayofpaths[i] = Uri.EscapeUriString(arrayofpaths[i]);
    }

    try
    {
        Amazon.CloudFront.AmazonCloudFrontClient oClient = new Amazon.CloudFront.AmazonCloudFrontClient(MY_AWS_ACCESS_KEY_ID, MY_AWS_SECRET_KEY, Amazon.RegionEndpoint.USEast1);
        CreateInvalidationRequest oRequest = new CreateInvalidationRequest();
        oRequest.DistributionId = ConfigurationManager.AppSettings["CloudFrontDistributionId"];
        oRequest.InvalidationBatch = new InvalidationBatch
        {
            CallerReference = DateTime.Now.Ticks.ToString(),
            Paths = new Paths
            {
                Items = arrayofpaths.ToList<string>(),
                Quantity = arrayofpaths.Length
            }
        };

        CreateInvalidationResponse oResponse = oClient.CreateInvalidation(oRequest);
        oClient.Dispose();
    }
    catch
    {
        return false;
    }
    return true;
}

関数に渡される配列には、次のような単一の Url が含まれます。

images/temp_image.jpg

画像は S3 バケットに存在し、ブラウザの CloudFront URL にロードされます。

私は何を間違っていますか?

4

3 に答える 3

2

パスの先頭にスラッシュを追加しようとしましたか? (/images/temp_image.jpg)

于 2016-02-06T08:57:44.707 に答える