私は最近Amazon S3を使用して訪問者にイメージを提供し始めました。これはサーバー負荷を軽減するためです。今、新しい問題があります:今日私はAWS請求書を調べました。私は、私が待っている膨大な請求書を持っていることに気付きました。20日間で合計4TBのAWSデータ転送が行われました。データ転送のコストを削減するにはどうすればよいですか? Amazon S3 - > Cloudflare - > Visitor
これは明らかに、Amazon S3の送信トラフィックが多い(Cloudflareに送信されて訪問者に配信される)ためです。今度は、(クラウドフレアのクローラーはそれを尊重するので)キャッシュヘッダーを設定することによって、要求されたファイルの量を減らす必要があります。それでも、それは動作しません
$s3->putObjectFile($path, $bucket , 'images/'.$id.'.jpg', S3::ACL_PUBLIC_READ, array('Cache-Control' => 'public,max-age=31536000'));
に
$s3->putObjectFile($path, $bucket , 'images/'.$id.'.jpg', S3::ACL_PUBLIC_READ);
:私はこのような私のコードを変更しました。 Cache-Controlはヘッダーに "Cache-Control"として表示されず、代わりに "x-amz-meta-cachecontrol"として表示されるため、Cloudflareはキャッシュを尊重しません。 Cloudflareはこれを無視します。
誰にでも簡単な解決策がありますか?
TL; DR:私はこの男のように、多かれ少なかれ、同じ問題があります。http://support.bucketexplorer.com/topic734.html(それは2008年だった)
EDIT:を私はこのつまずいていますAmazon S3 not caching images残念ながらその解決策はしていません私のために働く。
EDIT 2:「Amazon S3クラス」の古いバージョンを使用していたため、正しく動作しませんでした。私は更新し、コードは今動作します。
ありがとうございます。
なぜ動作しないのか分かりました。私は、「Amazon S3 PHP Class」の古いバージョンを使用していたことが分かります。私はあなたの提案されたコードを更新し、使用しました、そして、新しいファイルはキャッシュコントロールセットを持っています。すばらしいです! もう一つのリンクを見て、すでにバケットに入っているファイルのCache-Controlヘッダーをすべて設定します。 これは私のすべての問題を解決するはずです。すべてありがとう! –
@Jonas:このアプローチの後にデータ転送を減らすことができましたか?私はかなり長いことを知っていますが、私は今あなたのボートにいます。 –