16

ウェブアプリで JPEG 画像を配信するために、Amazon S3 (または、Amazon Cloudfront がより良い選択肢であることが判明した場合) の使用を検討していますが、相反する可能性のある 2 つの要件があります。

  1. 画像はプライベート コンテンツです。有効期限が短い署名付き URL を使用したい。
  2. 画像は大きいです。ユーザーのブラウザーによって長期的にキャッシュされます。

私が考えているアプローチは次のとおりです。

  1. ユーザーリクエスト www.myserver.com/the_image
  2. 私のサーバーのロジックは、ユーザーが画像を表示できるかどうかを判断します。それらが許されるなら…
  3. ブラウザー ( is HTTP 307 best ?) を署名済みの Cloudfront URL にリダイレクトします
  4. 署名された Cloudfront URL は 60 秒で期限切れになりますが、その応答には " Cache-Control max-age=31536000, private"が含まれています

私が予見する問題は、次にページが読み込まれるときに、ブラウザーが www.myserver.com/the_image を探しますが、そのキャッシュは署名付きの Cloudfront URL 用になるということです。私のサーバーは、有効期限が非常に短いため、2 回目は別の署名付き Cloudfront URL を返すため、ブラウザーはキャッシュを使用できることを認識しません。

Web サーバーに Cloudfront からのイメージをプロキシさせずにこれを回避する方法はありますか (Cloudfront を使用するすべての利点が明らかに無効になります)。

何かできることがあるのだろうかと思っていますetagHTTP 304、ドットに参加することはできません...

4

3 に答える 3

-1

ユーザー + イメージ + 有効期限のリストを保存 -> クラウドフロント リンク。ユーザーが期限切れになっていない cloudfront リンクを持っている場合は、それをイメージに使用し、新しいものを生成しないでください。

于 2013-02-05T14:36:11.493 に答える
-1

すでに問題を解決しているようです。サーバーがhttp 307クラウドフロント URL (署名付き URL) へのリダイレクトを発行しているため、ブラウザーは URL (www.myserver.com/the_image) ではなくクラウドフロント URL のみをキャッシュすると言っていました。クライアント 1 は www.myserver.com/the_image をチェックします -> CloudFront URL にリダイレクトされます -> コンテンツがキャッシュされます CloudFront URL は現在期限切れです。

クライアント 1 は再度 www.myserver.com/the_image をチェックします -> 同じ CloudFront URL にリダイレクトされます -> CloudFront コンテンツを再度取得することなく、キャッシュからコンテンツを取得します。

クライアント 2 は www.myserver.com/the_image をチェックします -> CloudFront URL にリダイレクトされ、署名の有効期限が切れたため、アクセスが拒否されます。

于 2014-12-12T21:52:16.507 に答える