サーバーの負荷が軽減されるため、最近、Amazon S3 を使用して訪問者に画像を提供し始めました。ここで、新たな問題が発生しました。今日、AWS の請求を調べました。多額の請求書が待っていることに気付きました.20 日間で合計 4TB の AWS データ転送がありました.
これは明らかに、大量の送信 Amazon S3 トラフィック (Cloudflare がトラフィックをビジターに提供する) によるものです。ここで、キャッシュ ヘッダーを設定して、要求されたファイルの量を減らす必要があります (Cloudflare のクローラーがそれを尊重するため)。コードを次のように変更しました。
$s3->putObjectFile($path, $bucket , 'images/'.$id.'.jpg', S3::ACL_PUBLIC_READ);
に
$s3->putObjectFile($path, $bucket , 'images/'.$id.'.jpg', S3::ACL_PUBLIC_READ, array('Cache-Control' => 'public,max-age=31536000'));
それでも、うまくいきません。Cache-Control がヘッダーに「Cache-Control」として表示されず、代わりに「x-amz-meta-cachecontrol」として表示されるため、Cloudflare はキャッシュを尊重しません。Cloudflare はこれを無視します。
誰もこれに対する簡単な解決策を持っていますか?
TL;DR:私は多かれ少なかれこの男と同じ問題を抱えています: http://support.bucketexplorer.com/topic734.html (2008 年)
編集:私はこれに出くわしました: Amazon S3は画像をキャッシュしていませんが、残念ながらその解決策は私にとってはうまくいきません.
編集 2:「Amazon S3 クラス」の古いバージョンを使用していたため、機能しなかったことが判明しました。更新したところ、コードが機能するようになりました。
お時間をいただきありがとうございます。