Если вы установите заголовки, которые вы указали в файле при загрузке на S3, вы сможете загрузить файл с оригинальным именем файла.(вы также можете установить их для существующих файлов в S3 - см. документацию AWS)
Я не уверен, поддерживает ли ваша библиотека это, но вы можете сделать это с помощью AWS S3 SDK .
Что-то вроде (я не знаю php, поэтому проверьте синтаксис):
// Instantiate the class
$s3 = new AmazonS3();
$response = $s3->create_object('bucket', 'filename_11052011111924.zip', array(
'fileUpload' => 'filename.zip',
'contentType' => 'application/octet-stream',
'headers' => array( // raw headers
'Content-Disposition' => 'attachment; filename=filename.zip',
),
));
Обновление
Вы также можете настроить определенные заголовки каждыйраз вы генерируете новый URL.См http://docs.amazonwebservices.com/AWSSDKforPHP/latest/#m=AmazonS3/get_object_url
$url = $s3->get_object_url('bucket', 'filename_11052011111924.zip', '5 minutes', array(
'response' => array(
'Content-Disposition' => 'attachment; filename=filename.zip'
)
));