因此,我公司私下将所有PDF文件存储在Amazon S3中。 当用户请求它时,我们的系统从Amazon S3获取它,然后使用以下代码将其提供给用户:
header("Cache-Control: public");
header("Pragma: public");
header("Expires: 0");
header("Content-Description: File Transfer");
header('Content-Disposition: attachment; filename="'.$fileName.'"');
header('Content-Length: ' . strlen($res->body));
header("Content-type: application/pdf");
header("Content-Transfer-Encoding: binary");
header('Connection: close');
echo $res->body;
$ res是来自亚马逊的回复,内容来自$res->body;
当用户尝试下载PDF文件时,我看到随机的下载速度很慢,特别是当PDF很大(~5mb)时,相比其他只有800kb-1.5mb的其他人。
尝试解决方案: 1)删除内容长度标头没有帮助。 2)在httpd.conf中删除EnableSendfile也无济于事。
我还检查了服务器,以确保它不是引起此问题的服务器的工作负载。 服务器和用户工作站的速度测试看起来也很好。
你们中有谁知道造成这种缓慢的原因是什么?
答案 0 :(得分:0)
可能是贵公司的多人使用互联网。 您应该对网络进行全面扫描,但即便如此,您仍然不会独自在互联网上,以及他们的虚拟网络#34;服务器环境也是共享的。
答案 1 :(得分:0)
根据我的理解,问题是只需花时间从S3获取文件,以便将其返回给用户。
帮自己一个忙:
不要担心,因为创建签名网址不会泄露任何危害您安全的私人信息(如果您做得不正确)