次のコードを使用して、AWS PHP SDK v2.xを使用して S3 バケット間でオブジェクトをコピーしています。
<?php
try {
self::$aws->copyObject(array(
'Bucket' => $target_bucket,
'Key' => $target_key,
'CopySource' => $source_bucket . '/' . $source_key,
'Content-Disposition' => 'attachment',
//'Content-Disposition' => 'attachment; filename="' . basename($target_key) . '"'
//'ContentDisposition' => 'attachment'
//'ContentDisposition' => 'attachment; filename="' . basename($target_key) . '"'
));
} catch (Aws\S3\Exception\S3Exception $e) {
echo 'error';
}
ファイルはエラーなしで S3 バケットにコピーされますがContent-Disposition
、ブラウザにファイルをストリーミングするのではなく強制的にダウンロードさせるために を設定できません。いくつかのオプションを試しましたが (上記でコメントアウト)、何も機能していないようです。
ドキュメントにはそうではないと書かれMetadata
ていますが、配列に値を渡そうとしましたが、 AWS コンソールには Metadata セクションの下にリストされています。Content-Disposition
AWS コンソールで手動で変更するContent-Disposition
と、ブラウザは期待どおりにファイルをダウンロードします。
では、値を S3 オブジェクトに正しく渡すにはどうすればよいでしょうか? メソッドを使用して渡すことはできますか?CopyObject()