而不是在请求体中下载和发送数据。有没有办法“流过去”?目前,我受到PHP分配的内存的限制,因为我必须将整个文件的内容保存在内存中,然后再通过.
我正在为苹果iOS应用程序开发一个企业级应用程序商店(而且安卓应用程序也是如此,但链接也很好),它们要求域名与服务器相同,服务器本身太小,无法承载这么多文件.它还需要我在服务器上拥有的有效SSL证书。
我已经尝试过直接链接到S3,但它无法工作,唯一的方法是从服务器提供文件,因此我一直在询问是否要传递文件/隐藏原始位置,或者我不知道,是否可以将S3安装为驱动器?
发布于 2014-04-29 09:22:18
使用fpassthru的代理需要按照@ as 7-6的建议执行,如下所示:
$handle = @fopen('file path or in this case url to file on S3', 'rb');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache'); //keeps ie happy
header('Content-Disposition: attachment; filename=app.ipa');
header('Content-type: application/octet-stream');
header('Content-Length: '.$fileInfo['size']); // taken from a previous S3 API call to get object info
header('Content-Transfer-Encoding: binary');
ob_end_clean(); // apparently very important for bigger files
fpassthru($handle); // proxy stream file through your server
exit();发布于 2014-04-28 15:24:03
你看过S3的正式文档了吗?
见以下答案:How to create download link for an Amazon S3 bucket's object?
没有必要通过服务器将数据推送到客户端。在需要受保护的可下载项的情况下,还有一种方法可以为下载链接提供一个只在给定时间内有效的令牌。
https://stackoverflow.com/questions/23342996
复制相似问题