Seit Kurzem benutze ich Amazon S3, um meinen Besuchern Bilder zu liefern, da dies die Serverlast reduziert. Jetzt gibt es ein neues Problem: Heute habe ich mir meine AWS-Rechnungen angesehen. Ich habe bemerkt, dass ich eine riesige Rechnung habe, die auf mich wartet - es gab insgesamt 4 TB AWS-Datentransfer in 20 Tagen.Wie kann ich meine Datenübertragungskosten reduzieren? Amazon S3 -> Cloudflare -> Besucher
Offensichtlich ist dies, weil die hohe Menge an ausgehenden Amazon S3-Verkehr (zu Cloudflare, die es dann an die Besucher dient). Jetzt sollte ich die Anzahl der angeforderten Dateien reduzieren, indem ich einen Cache-Header setze (da Cloudflares Crawler das respektiert). Ich habe wie dies meinen Code geändert:
$s3->putObjectFile($path, $bucket , 'images/'.$id.'.jpg', S3::ACL_PUBLIC_READ);
zu
$s3->putObjectFile($path, $bucket , 'images/'.$id.'.jpg', S3::ACL_PUBLIC_READ, array('Cache-Control' => 'public,max-age=31536000'));
Dennoch ist es nicht funktioniert. Cloudflare berücksichtigt den Cache nicht, da das Cache-Control nicht als "Cache-Control" im Header, sondern als "x-amz-meta-cachecontrol" angezeigt wird. Cloudflare ignoriert dies.
Hat jemand eine einfache Lösung dafür?
TL; DR: Ich habe mehr oder weniger das gleiche Problem wie dieser Kerl: http://support.bucketexplorer.com/topic734.html (das war im Jahr 2008)
EDIT: Ich habe auf dieser gestolpert: Amazon S3 not caching images aber leider diese Lösung nicht arbeite für mich.
EDIT 2: Es stellte sich heraus, dass es nicht funktionierte, weil ich eine alte Version der "Amazon S3-Klasse" verwendete. Ich habe aktualisiert und der Code funktioniert jetzt.
Vielen Dank für Ihre Zeit.
ich herausgefunden, warum es nicht funktioniert. Es stellte sich heraus, dass ich eine alte Version der "Amazon S3 PHP Class" verwendet habe. Ich habe Ihren vorgeschlagenen Code aktualisiert und verwendet, und jetzt haben die neuen Dateien einen Cache-Control-Satz. Groß! Ich werde auch in Ihrem zweiten Link schauen, um alle Cache-Control-Header für die Dateien, die bereits im Bucket sind, festzulegen. Dies sollte alle meine Probleme lösen. Danke für alles! –
@Jonas: Konnten Sie Ihren Datentransfer nach diesem Ansatz reduzieren? .. Ich weiß es ziemlich lange .. aber ich bin jetzt in Ihrem Boot. –