通过亚马逊s3 php类强制下载文件

时间:2014-08-28 14:02:12

标签: php amazon-web-services amazon-s3

我的应用程序正在使用tpyo/amazon-s3-php-class向/从Amazon S3存储中放置和获取对象。

文件不公开,我希望我的用户能够通过我的应用程序下载私人文件。

amazon-s3-php-class 提供了两个获取文件的选项:

  1. 将对象保存到文件:S3::getObject($bucketName, $uploadName, $saveName)
  2. 将对象保存到任何类型的资源:S3::getObject($bucketName, $uploadName, fopen('savefile.txt', 'wb'))
  3. 但是这两种方法都将文件保存到我的Web服务器。如何强制将文件下载到客户端的计算机上?

1 个答案:

答案 0 :(得分:2)

我相信你可以使用第二个选项,将输出缓冲区作为fopen的文件名参数传递(在设置正确的标题后):

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
//etc etc

S3::getObject($bucketName, $uploadName, fopen('php://output', 'wb'));