5

私は、サイズが 50kb から 2mb の範囲の多くの画像を含む都市景観と自然写真の Web サイトを運営しています。バッチ フォト エディターを使用して既にサイズを縮小しているので、画像が粗くなりすぎずに画像の品質をこれ以上失うことはありません。

Google ページの洞察では可逆圧縮が推奨されており、これを解決する方法を見つけようとしています。これらの特定のイメージは s3 バケットにあり、AWS クラウドフロントによって提供されています

https://d339oe4gm47j4m.cloudfront.net/bw107.jpgを可逆圧縮すると、57.6KiB を節約できます (38% 削減)。https://luminoto-misc.s3-us-west-2.amazonaws.com/bob_horsch.jpgを可逆圧縮すると、40.6KiB を節約できます (42% 削減)。……そして、同じものをさらに 100 個。

イメージがサーバーからクライアントに送信される前に、Cloudfront は圧縮を実行できますか? または、他のタイプの圧縮を行ってから、各ファイルを新しい s3 バケットに再アップロードする必要がありますか。クラウドフロントがそれを行うソリューションを探しています。

私は周りを検索しましたが、決定的な答えは見つかりませんでした。

ありがとう、ジェフ

4

3 に答える 3

3

アップデート

Ryan Parman (+1) が暗黙のうちに指摘したように、圧縮 (および/または最適化) に関しては、2 つの異なるレイヤーが関係しており、これまでの議論では少し混ざっているように見えます。

以下の私の最初の回答は、質問のタイトルに従ってCloudfront を使用したロスレス圧縮に対​​処したもので、 HTTP 圧縮レイヤーに関係しています。

HTTP 圧縮は、Web サーバーWeb クライアントに組み込むことができる機能であり、利用可能な帯域幅をより有効に活用し、両方の間の伝送速度を向上させます。

[...] データはサーバーから送信される前に圧縮されます。準拠ブラウザは、正しい形式をダウンロードする前に、サポートされているメソッドをサーバーに通知します。準拠した圧縮方法をサポートしていないブラウザは、圧縮されていないデータをダウンロードします。[...]

つまり、圧縮/解凍操作は通常、サーバーとクライアントによって自動的に処理され、帯域幅の使用と転送パフォーマンスが最適化されます。CloudFront との違いは、サーバーの実装がほとんどの Web サーバーのように圧縮を自動的に処理しないことです。必要に応じて、圧縮された表現を自分で準備する必要があります。

  • この種の圧縮は、HTML、CSS、JavaScript などのテキスト ファイルで最も効果的ですが、ZIP やその他の事前にパックされたアーカイブや esp. PNG や JPEG などの画像形式。

さて、あなたの質問の本文は、異なる圧縮/最適化レイヤー、つまり、損失のあるJPEG_compressionと具体的にはLossless_editingとjpegoptimによる最適化についてまとめて話しています.ファイル自体は、Web やモバイル ブラウジングなどの特定のユース ケースでのパフォーマンスの制約によりよく適合します。たとえば、デジタル写真を元のサイズで送信しても、Web ページで単に表示するだけの場合は意味がありません。


最初の回答

AWS CloudFront圧縮ファイルを提供することができますが、これは文字通り解釈されます。

Amazon CloudFront は、オリジンサーバーから圧縮ファイルと非圧縮ファイルの両方を提供できます。CloudFront は、オリジンサーバーに依存して、ファイルを圧縮するか、ファイルの圧縮および非圧縮バージョンを利用できるようにします。CloudFront はオリジンサーバーに代わって圧縮を実行しません。いくつかの資格があれば、CloudFront は Amazon S3 から圧縮されたコンテンツを提供することもできます。詳細については、「圧縮するファイルの種類を選択する」を参照してください。[鉱山を強調]

つまり、圧縮バージョンを自分で提供する必要がありますが、これを設定すると、これはクライアントに対して透過的になります。コンテンツは gzip を使用して圧縮する必要があることに注意してください。他の圧縮アルゴリズムはサポートされていません:

[...] リクエスト ヘッダーに deflate や sdch などの追加のコンテンツ エンコーディングが含まれている場合、CloudFront はリクエストをオリジン サーバーに転送する前にそれらを削除します。Accept-Encoding フィールドに gzip がない場合、CloudFront は圧縮されていないバージョンのファイルのみを提供します。[...]

要件とプロセスに関する詳細は、CloudFront がカスタムオリジンから圧縮コンテンツを提供する方法Amazon S3 から圧縮ファイルを提供する で概説されています。

于 2014-06-27T10:47:21.487 に答える
2

JPEGOptim doesn't do any compression -- it does optimization.

The short answer is, yes, you should always use JPEGOptim on your .jpg files to optimize them before uploading them to S3 (or whatever your source storage is). This has been a good idea since forever.

If you're talking about files which are plain text-based (e.g., CSS, JavaScript, HTML), then gzip-compression is the appropriate solution, and Steffen Opel would have had the 100% correct answer.

于 2014-06-28T22:25:09.257 に答える
0

Amazon が実際にサポートする唯一の圧縮は、zip または gzip です。これらの圧縮を S3 にロードして、Redshift などのリソースに直接ロードするなどの操作を実行できます。要するに、探しているサービスを提供しないAmazonはありません. これはあなたが自分自身を活用しなければならないものになるでしょう...

于 2014-06-27T03:20:32.353 に答える