このコードを使用して、ASP.NET AWS SDK を使用して CloudFront ファイルを無効にしています。
public bool InvalidateFiles(string[] arrayofpaths)
{
try
{
var client = AWSClientFactory.CreateAmazonCloudFrontClient(MY_AWS_ACCESS_KEY_ID, MY_AWS_SECRET_KEY);
CreateInvalidationResponse r = client.CreateInvalidation(new CreateInvalidationRequest
{
DistributionId = ConfigurationManager.AppSettings["DistributionId"],
InvalidationBatch = new InvalidationBatch
{
Paths = new Paths
{
Quantity = arrayofpaths.Length,
Items = arrayofpaths.ToList()
},
CallerReference = DateTime.Now.Ticks.ToString()
}
});
}
catch
{
return false;
}
return true;
}
「/images/1.jpg」のようなパスを指定したのですが、無効化されていないようです。私は30分待ってハードリフレッシュを使用し、キャッシュをクリアしましたが、画像は同じです。無効化が発生した場合に違いがわかるように、画像を別のように変更しました。
コンソールには、ID があり、ステータスに「完了」と表示されているため、無効化が行われたことがわかりますが、画像には何も変化がありません。
私の質問は、無効化が行われたことを確認して機能させるにはどうすればよいかということです。何かが足りないようです。
また、非同期で作成するオプションがあるので、Amazon から回答する必要はありません。
ありがとう。