Я немного уверен относительно того, как начать загрузку файла с Amazon S3 с Laravel 4. Я использую AWSСкачать файл с Amazon S3 с Laravel
$result = $s3->getObject(array(
'Bucket' => $bucket,
'Key' => 'data.txt',
));
// temp file
$file = tempnam('../uploads', 'download_');
file_put_contents($file, $result['Body']);
$response = Response::download($file, 'test-file.txt');
//unlink($file);
return $response;
Вышеуказанные работы, но я застрял в сохранении файла локально. Как правильно использовать результат из S3 с помощью Response::download()
?
Спасибо!
EDIT: Я нашел, что я могу использовать $s3->getObjectUrl($bucket, $file, $expiration)
для создания URL-адреса доступа. Это может сработать, но оно все еще не решает проблему выше полностью.
EDIT2:
$result = $s3->getObject(array(
'Bucket' => $bucket,
'Key' => 'data.txt',
));
header('Content-type: ' . $result['ContentType']);
header('Content-Disposition: attachment; filename="' . $fileName . '"');
header('Content-length:' . $result['ContentLength']);
echo $result['Body'];
Тем не менее не думаю, что он идеально подходит, хотя?
Что вы подразумеваете под «экономией на месте»? Если вы храните этот файл где-то на сервере, просто замените 'tempnam' правильным (постоянным) путем и именем файла; но я не понимаю, почему вам нужен S3.) – raina77ow
В этом суть - я хочу запустить загрузку с S3 – Prash