私は何千もの画像をホストするウェブサイトを持っています。それだけでなく、各画像のサイズはウェブページの場所によって異なります。リストページでは、画像は350x200の長方形で表示され、サイドバーの画像は100x100などです。ウェブサイトでさまざまな画像サイズを管理する方法
したがって、ユーザーが私はオリジナルを保持し、サイズごとに4つのサイズ変更されたコピーを作成します。 100人のユーザーが画像をアップロードすると、結果は500画像になります。さまざまなモバイルデバイスのさまざまなサイズで何が起こるかを考えることはできません...
私はCloudFrontを使用して速度を最適化しました。また、ユーザーが画像をアップロードすると、元のサイズの画像とサイズ変更された画像がAmazon S3バケットにアップロードされます。 明日、別のサイズを追加するか、既存のサイズを変更する場合は、古いサイズのイメージを削除し、新しくサイズの変更したイメージをアップロードするスクリプトを実行する必要があります。つまり、「S3から元のサイズに戻し、新しいサイズ "。それは全く実用的ではありません。ウェブサイトを完全に再設計してイメージのサイズが完全に変わったとしたら、各イメージを新しい要件に変更し、古いイメージを削除するスクリプトを実行する必要があります。
それを達成するためのより現実的な方法はありますか?
私は次のシナリオacheiveしたい:ユーザーが画像をアップロードすると
- を、私はそれのサイズを変更し、S3 にアップロードし
- CloudFrontは、私に直接
- をリサイズしている画像を撮影します別のサイズを追加すると、CloudFrontはこのサイズがS3にないことを確認し、私のウェブサイトから原点からそれを引き出すようにします。
私はこれを実装する方法を考えることはできません。どのような助けやベストプラクティスの共有も可能です。
最高の解像度の画像を保存してから、他のサイズを動的に生成することもできます*。 PHPの 'imagecopyresampled()'メソッドの1つを呼び出すことを除いて、イメージファイル名と幅と高さを渡すことを除いて、ちょっとしたことを示す少しのPHPスクリプトを実行しました。https://stackoverflow.com/a/25835507/ 2836621。別の例https://stackoverflow.com/a/30573825/2836621 –
ありがとうございます。私はちょうどそれをしたことに言及することを忘れていた(ジョン・ローテンシュタインの答えに対する私のコメントを参照)。これが唯一の良い解決策であれば、それをそのまま残します。私は考えることができない何かがあると思っただけです。 –