ダッチオーブンの底

好奇心旺盛でいろんなことにチャレンジするが、ことごとく失敗ばかりする文系未経験プログラマーが体験して、皆さんの役に立ちそうな情報を発信していくブログです。

AWSの画像のキャッシュを消す方法

C#awsに画像を保存したり削除したりしてると
エッジキャッシュというawsが持っておいてくれるキャッシュが原因ですぐに反映されない時がある。
しかしそれでは困ることもあるので
今回はこのエッジキャッシュの設定をC#でいじってキャッシュを持たせないようにする

string temp_path = "キャッシュを消したい画像のURL(バケットより後ろ全部)"
List<string> cloudFrontInvalidationPath = new List<string>() { temp_path};
using (var oClient =
	new Amazon.CloudFront.AmazonCloudFrontClient("アクセスキー", "シークレットキー", "リージョンポイント"))
{
	Amazon.CloudFront.Model.CreateInvalidationRequest oRequest = new Amazon.CloudFront.Model.CreateInvalidationRequest();
	oRequest.DistributionId = "ディストリビューションID";
	oRequest.InvalidationBatch = new Amazon.CloudFront.Model.InvalidationBatch
	{
		CallerReference = DateTime.Now.Ticks.ToString(),
		Paths = new Amazon.CloudFront.Model.Paths
		{
			Items = cloudFrontInvalidationPath,
			Quantity = cloudFrontInvalidationPath.Count
		}
	};

	Amazon.CloudFront.Model.CreateInvalidationResponse oResponse = oClient.CreateInvalidation(oRequest);
}