AWS Cloudfront 経由で tar.gz ファイルを提供しますか?

AWS Cloudfront 経由で tar.gz ファイルを提供しますか?

ウェブサイトのアセットが保存されている S3 バケットを整理整頓しておきたいです。

現在、CI/CD パイプラインの一部として、すべてのアセットを S3 にアップロードしていますが、生成されたファイルの名前が常に同じとは限らないため、少し面倒になっていて、古いファイルが大量に残っています。簡単な解決策としては、新しいリリースの前に S3 バケットを空にすることですが、私は別のことを考えています。

このコマンドを実行すると、dist フォルダーから 1 つのファイルを生成できます。

tar -zcvf MyWebApp.tar.gz dist

この tar.gz ファイルのみを S3 バケットにアップロードして、新しいリリースごとに置き換え、CloudFront 経由で提供することは可能ですか?

答え1

CloudFront では、必要な処理を実行できません。個々のファイルを提供しなければなりません。CloudFront はリクエストを受け取り、S3 からファイルを提供するだけです。何かを解凍することはできません。

アセット パイプラインが一意のアセット ファイル (ハッシュ化された名前を持つ) を生成するのは普通のことです。これらのファイルは、期限が切れるまでアセット サーバー上に残しておくことができます。原則として、新しいアセットを生成する場合は、古いアセットをいつでも破棄できます。アセット パイプラインは、変更されていないコンテンツに新しい名前を作成しないようにする必要があります。そうすることで、クライアントはキャッシュされたコンテンツを引き続き使用できます。

つまり、要約すると、アセットを更新する場合は、不要になったアセットを S3 から積極的に削除する必要があります。

関連情報