ウェブアプリで JPEG 画像を配信するために、Amazon S3 (または、Amazon Cloudfront がより良い選択肢であることが判明した場合) の使用を検討していますが、相反する可能性のある 2 つの要件があります。
- 画像はプライベート コンテンツです。有効期限が短い署名付き URL を使用したい。
- 画像は大きいです。ユーザーのブラウザーによって長期的にキャッシュされます。
私が考えているアプローチは次のとおりです。
- ユーザーリクエスト www.myserver.com/the_image
- 私のサーバーのロジックは、ユーザーが画像を表示できるかどうかを判断します。それらが許されるなら…
- ブラウザー (
is HTTP 307 best ?
) を署名済みの Cloudfront URL にリダイレクトします - 署名された Cloudfront URL は 60 秒で期限切れになりますが、その応答には "
Cache-Control max-age=31536000, private
"が含まれています
私が予見する問題は、次にページが読み込まれるときに、ブラウザーが www.myserver.com/the_image を探しますが、そのキャッシュは署名付きの Cloudfront URL 用になるということです。私のサーバーは、有効期限が非常に短いため、2 回目は別の署名付き Cloudfront URL を返すため、ブラウザーはキャッシュを使用できることを認識しません。
Web サーバーに Cloudfront からのイメージをプロキシさせずにこれを回避する方法はありますか (Cloudfront を使用するすべての利点が明らかに無効になります)。
何かできることがあるのだろうかと思っていますetag
がHTTP 304
、ドットに参加することはできません...