我有点确定如何使用 Laravel 4 从 Amazon S3 下载文件。我使用的是 AWS
$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()
?
谢谢!
编辑:我发现我可以$s3->getObjectUrl($bucket, $file, $expiration)
用来生成访问 URL。这可以工作,但它仍然不能完全解决上述问题。
编辑2:
$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'];
但是,仍然不认为它是理想的吗?