S3 を使用して、ユーザーがアップロードした写真を保存します。明らかに、サイズを変更せずに画像ファイルをユーザー エージェントに提供することはありません。ただし、一部のサムネイルは他の大きなプレビューよりも小さいため、1 つのサイズで十分というわけではありません。そこで、最小の 16x16 から最大の 1024x1024 までの標準寸法セットを作成することを考えていました。これは、この問題を解決する良い方法ですか? 後で新しいサイズが必要になった場合はどうすればよいですか? これをどのように解決しますか?
2 に答える
さまざまなサイズを事前に生成して S3 に保存することは、特に必要なサイズがわかっている場合、すべての画像にすべてのサイズを使用する可能性が高く、画像とサイズがそれほど多くない場合に適した方法です。保管コストが高すぎる。
画像ごとに異なるサイズを事前に生成して保存したくない場合、または将来使用するサイズがわからない場合に使用する別のアプローチを次に示します。
元のサイズを S3 に保存します。
要求に応じて元の画像から任意のサイズを生成できる Web サーバーを実行します。
Web サーバーの前に CDN (CloudFront) を貼り付けます。
これで、Web サイトまたはアプリケーションは CloudFront から /16x16/someimage.jpg のような URL をリクエストできます。これが最初に発生すると、CloudFront はサイズ変更された画像をウェブサーバーから取得しますが、CloudFront は画像をキャッシュして提供し、ウェブサーバーに到達するトラフィックの量を大幅に削減します。
これは、任意の URL から画像のサイズを変更し、CloudFront を通じて提供するサービスです: http://filter.to
これは良いアプローチのように思えます。アプリケーションによっては、常に生成する一連のサムネイル サイズを定義する必要があります。ただし、要件が後で変更された場合は、元のユーザー ファイルも保存してください。新しいサムネイル サイズを追加する場合は、すべての元のファイルを反復処理して、そこから新しいサムネイルを生成できます。このオプションにより、後で柔軟に対応できます。