Хорошо, прошло много времени с тех пор, как вы спрашивали об этом, но у меня была та же проблема, и я хотел бы поделиться своим решением с сообществом, на случай, если кому-то еще понадобится решить эту проблему. Конечно, вы можете изменить Content-Type и Content-Disposition из консоли Amazon S3, но интересно сделать это программно.
У меня нормально работает следующий код:
require_once '../sdk-1.4.2.1/sdk.class.php';
// Instantiate the class
$s3 = new AmazonS3();
// Copy object over itself and modify headers
$response = $s3->copy_object(
array( // Source
'bucket' => 'your_bucket',
'filename' => 'Key/To/YourFile'
),
array( // Destination
'bucket' => 'your_bucket',
'filename' => 'Key/To/YourFile'
),
array( // Optional parameters
'headers' => array(
'Content-Type' => 'application/octet-stream',
'Content-Disposition' => 'attachment'
)
)
);
// Success?
var_dump($response->isOK());
Надеюсь, что это поможет другим бороться с той же проблемой.