PHP için Amazon SDK'yı kullanıyorum ve önbellek denetimi üstbilgisini görüntüde ayarlamaya çalışıyorum. MetaData = array ("Cache-Control") ile eklemeyi denediğimde, S3 kovasına giriş yaptığımda x-amz-meta-cache-control olarak değiştirir ve dosyayı indirdiğimde önbellek yoktur. -kontrol seti. Ancak bu ayarı elle değiştirirsem, Önbellek denetimi mükemmel çalışır. HTTP İstek Başlıkları'nı programa yükleme sırasında ayarlamak için kullanabileceğim bazı eksik parametreler var mı? PutObject yöntemini kullanıyorum. AWS SDK'nın 2013'ten geldiğine inanıyorum.S3 için Önbellek Denetimi HTTP Üstbilgisini Ayarla PHP'den AWS SDK için
cevap
Önbellek denetimi "MetaData" dizini üzerinden ayarlanmadı, "CacheControl", içinde yer almayan "MetaData" ile aynı seviyede. Sen putObject() yöntemi için yapılandırma dizi olarak böyle bir şey kullanmak istiyorum
http://docs.aws.amazon.com/aws-sdk-php-2/latest/class-Aws.S3.S3Client.html#_putObject
... yükleme() yöntemi için
$s3client->putObject(array(
'Bucket' => '...',
'key' => '...',
'body' => '...',
'CacheControl' => 'max-age=172800',
'MetaData' => array(
'metaKey' => 'metaValue',
'metaKey' => 'metaValue'
)));
...
$s3client->upload(
'bucket',
'key',
fopen('sourcefile','r'),
'public-read',
array('params' => array(
'CacheControl' => 'max-age=172800',
'Metadata' => array(
'metaKey' => 'metaValue',
'metaKey' => 'metaValue'
))));
Ayrıca, upload()
'unsarılacağını belirtmek gerekir. Boyutu 5MB olan dosyalar için, aksi takdirde çok parçalı bir yükleme isteği başlatacaktır.
CacheControl
üstbilgisini grubunuzda bulunan bir öğeye eklemek isterseniz, SDK'nın copyObject
yöntemini kullanın. Öğenin üzerine yazılması için REPLACE değerine MetadataDirective
parametresini ayarlayın.
Bir garip şey farkettim: Zaten ayarlanmış olsa bile ContentType
başlığını ayarlamak zorunda kaldım. Aksi takdirde, resim tarayıcıda satır içi gösterilmeyecek, ancak indirme olarak sunulacaktır.
$result = $s3->copyObject(array(
'ACL' => 'public-read',
'Bucket' => $bucket, // target bucket
'CacheControl' => 'public, max-age=86400',
'ContentType' => 'image/jpeg', // !!
'CopySource' => urlencode($bucket . '/' . $key),
'Key' => $key, // target file name
'MetadataDirective' => 'REPLACE'
));
- 1. AngularJS - GET isteği için HTTP üstbilgisini ayarla
- 2. Flask'ı kullanarak, TÜM çıktı için Önbellek denetimi üstbilgisini nasıl değiştirebilirim?
- 3. Catalyst'teki her yanıt için Önbellek Denetimi üstbilgisini nasıl ayarlayabilirim?
- 4. Tüm PHP betikleri için HTTP üstbilgisini .htaccess dosyasıyla ayarla
- 5. Etki alanı üstbilgisi için dosya üstbilgisini ve istek üstbilgisini ayarla
- 6. Jersey: Önbellek için varsayılan Önbellek Denetimi
- 7. S3 dosyalarını (nesneler) raylardaki yakut için aws-sdk kullanarak indirme
- 8. AWS S3 Java SDK - Dosya indir help
- 9. AWS S3 aws-sdk-cpp GetObject "Son noktaya bağlanılamıyor"
- 10. AWS SDK
- 11. başlatılmamış sabit AWS :: S3 :: AWS-SDK yoluyla temel
- 12. Java API için AWS SDK kullanırken SSLHandshakeException
- 13. GWT Forms için Özel HTTP Üstbilgisini Ayarlama
- 14. AWS :: S3
- 15. ASP.NET'te Önbellek Denetimi Üstbilgileri
- 16. AWS iOS SDK, KMS
- 17. aws-sdk gem alay nasıl?
- 18. WebBrowser denetimi için kimlik doğrulama üstbilgisini ayarlama - ASP.NET
- 19. Aws S3 kova ilkesi
- 20. AWS S3 JavaScript SDK getSignedUrl yalnızca taban yolunu döndürür
- 21. S3 Nesnesini Java AWS SDK ile Geri Alma
- 22. Harici dosyayı PHP SDK kullanarak AWS S3 kepçesine yükle
- 23. AWS S3 Golang SDK - dosya yükleme - yanlış bölge
- 24. izinleri AWS iOS SDK kullanarak yüklenen 2.0
- 25. aws-sdk v2 kullanarak S3'e bir görüntü yükleme
- 26. iOS AWS S3 uygulama eğiticisi
- 27. Google bulut depolama alanı, Önbellek Denetimi
- 28. HTTP Üstbilgisini NSURLRequest'e Ekle
- 29. Varolan bir Amazon S3 dosyasının meta verilerini nasıl güncellerim?
- 30. Amazon AWS IOS SDK: FOLDER
Size yardımcı olursa cevabımı "kabul edildi" olarak işaretler misiniz? – Scuzzy