首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将大文件从S3链接到CakePHP 2.x请求?

如何将大文件从S3链接到CakePHP 2.x请求?
EN

Stack Overflow用户
提问于 2014-04-28 13:53:50
回答 2查看 713关注 0票数 1

而不是在请求体中下载和发送数据。有没有办法“流过去”?目前,我受到PHP分配的内存的限制,因为我必须将整个文件的内容保存在内存中,然后再通过.

我正在为苹果iOS应用程序开发一个企业级应用程序商店(而且安卓应用程序也是如此,但链接也很好),它们要求域名与服务器相同,服务器本身太小,无法承载这么多文件.它还需要我在服务器上拥有的有效SSL证书。

我已经尝试过直接链接到S3,但它无法工作,唯一的方法是从服务器提供文件,因此我一直在询问是否要传递文件/隐藏原始位置,或者我不知道,是否可以将S3安装为驱动器?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-29 09:22:18

使用fpassthru的代理需要按照@ as 7-6的建议执行,如下所示:

代码语言:javascript
复制
$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();
票数 3
EN

Stack Overflow用户

发布于 2014-04-28 15:24:03

你看过S3的正式文档了吗?

见以下答案:How to create download link for an Amazon S3 bucket's object?

没有必要通过服务器将数据推送到客户端。在需要受保护的可下载项的情况下,还有一种方法可以为下载链接提供一个只在给定时间内有效的令牌。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23342996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档