Amazon SDK for PHP を使用して、画像に Cache-control ヘッダーを設定しようとしています。MetaData = array("Cache-Control") で追加しようとすると、S3 バケットにログインすると x-amz-meta-cache-control に変更され、ファイルをダウンロードするとキャッシュがありません・コントロールセット。しかし、この設定を手動で変更すると、キャッシュ コントロールは完全に機能します。アップロード時に HTTP リクエスト ヘッダーをプログラムで設定するために使用できる、不足しているパラメーターはありますか? PutObject メソッドを使用しています。AWS SDK は 2013 年のものだと思います。
質問する
19608 次
2 に答える
15
バケットに既にある項目にヘッダーを追加する場合CacheControl
は、SDK のcopyObject
メソッドを使用します。MetadataDirective
パラメータを REPLACE に設定して、アイテムがそれ自体を上書きするようにします。
1 つの奇妙なことに気付きました:ContentType
既に設定されているにもかかわらず、ヘッダーも設定する必要がありました。そうしないと、画像はブラウザーにインラインで表示されず、ダウンロードとして提供されます。
$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'
));
于 2015-03-18T09:09:54.003 に答える