Bahsettiğiniz php script Tamam çalışır, ancak ana olumsuz sitenizde bir ziyaretçi bir dosya istediğinde, her zaman, kendi sunucuları S3'ten yükleyin ve ardından tarayıcı bu verileri röle olacaktır. Düşük trafik siteler için, muhtemelen büyük bir anlaşma değil, ama yüksek trafik olanlar için, kesinlikle kendi sunucuları aracılığıyla her şeyi çalıştıran önlemek istiyor.
Neyse ki, S3 indirmek zorunda dosyalarınızı ayarlamak için oldukça düz ileri bir yolu var. Sadece (sadece içerik-eğilim belirleme, bazı tarayıcılarda çalışır, ancak her iki ayar tüm tarayıcılarda çalışması gerekir) içerik türü ve içerik-eğilim ayarlamak istiyorum.
Bu kod undesigned gelen Amazon S3 PHP sınıfını kullanarak olduğunuzu varsayarak:
/ / S3 auth set ve kova listeleme olsun
// then loop through the bucket and copy each file over itself, replacing the "request headers":
S3::copyObject($bucketName, $filename, $bucketName, $filename, "public-read", array(), array("Content-Type" => "application/octet-stream", "Content-Disposition" => "attachment"));
>
Şimdi tüm dosyaları indirmek zorunda kalacak. Siz değişiklik görmek için önbelleği temizlemek gerekebilir. Ve tabii ki, aslında tarayıcıda "inline" yüklenmesine istiyorsun herhangi bir dosya üzerinde yapmak yok.
Bu çözüm ile güzel kısmı doğrudan medya dosyalarını yüklemek başvurular, içerik-türü veya içerik eğilim umurumda değil, siz hala tarayıcıda dosyalarını çalabilir ve (gibi Flash'ı bir mp3 çalar diyelim) olduğunu aynı dosyayı indirmek için bir link. Kullanıcı zaten flaş dosyası yüklenirken bitmiş, onlar büyük olasılıkla hala indir süper hızlı olması anlamına gelir ve hatta size S3'ten herhangi bir ekstra bant genişliği ücretleri maliyeti olmayacak ki, onların önbellekte olacak.