aws s3 php,在Amazon S3上使用php进行强制下载

目前已经提到的php脚本可以正常工作,但主要的缺点是,每当您的站点上的访问者请求一个文件时,您自己的服务器将从S3加载它,然后将该数据中继到浏览器.对于低流量网站,这可能不是什么大问题,但对于高流量网站,您绝对希望避免通过自己的服务器运行一切.

幸运的是,有一个相当直接的方法来设置您的文件被迫从S3下载.而且你是完全正确的 – 你只是想设置内容类型和内容 – 处置(只是设置内容 – 配置可以在一些浏览器中工作,但设置都应该在所有浏览器中工作).

这段代码假设您正在使用Undesigned中的Amazon S3 PHP类:

// set S3 auth and get your bucket listing

// then loop through the bucket and copy each file over itself, replacing the "request headers":

S3::copyObject($bucketName, $filename, $bucketName, $filename, "public-read", array(), array("Content-Type" => "application/octet-stream", "Content-Disposition" => "attachment"));

?>

现在所有的文件都将被迫下载.您可能需要清除缓存以查看更改.显然,不要在浏览器中实际想要加载的“内联”文件上执行.

这个解决方案的最好的部分是直接加载媒体文件的应用程序(比如说Flash中的mp3播放器)并不在意内容类型或内容配置,所以您仍然可以在浏览器中播放文件链接下载同一个文件.如果用户已经完成了将文件加载到闪存中,他们很有可能仍然在缓存中,这意味着他们的下载速度将非常快,甚至不会为您带来任何额外的带宽费用.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值