浏览器触发下载的各种姿势

基本思路:

1.Content-Disposition用来触发浏览器的下载,同时可以设置默认的下载的文件名。
2.修改Content-Type为浏览器不能识别打开的类型,触发浏览器去下载。
在又拍云上可以通过多种方式灵活实现,下面我们来探索一下各种姿势吧。

Content-Disposition

又拍云 CDN 服务支持通过 _upd 参数和 Rewrite 方法实现。

  1. 示例一:

请求参数中加入 “_upd=true” ,代表添加响应头为: Content-Disposition: attachment

举个栗子:

http://upyun-assets.b0.upaiyu...

Rewrite实现规则:

$ADD_RSP_HEADER(Content-Disposition, attachment)

2.示例二:

请求参数中加入 “_upd=abc.png”,代表添加响应头为: Content-Disposition: attachment;
filename="abc.png"

举个栗子:

http://upyun-assets.b0.upaiyu...

Rewrite实现规则:

$ADD_RSP_HEADER(Content-Disposition, 'attachment;filename="abc.png"')

通过 Rewrite 实现不用改造 URL ,但是对于 URL 的更加精确控制比较麻烦。Rewrite实现比较适用于目录级别或者整个服务下的控制。_upd 参数比较适合精确到单个URL的控制。

注意:

参数跟随 开启的情况下,_upd参数无效。建议使用Rewrite去实现。

Content-Type

对于使用又又拍云的存储文件,通过API去上传的时候可以指定 Content-Type ;当然也可以通过 Rewrite规则去实现修改 Content-Type 。

1.示例:
通过API上传的时候指定文件类型比如:

content-Type: application/octet-stream

通过 Rewrite 实现:

$ADD_RSP_HEADER(Content-Type, application/octet-stream, 1)

其中 1 表示会覆盖掉已有的响应头 。

修改 Content-Type 不是很常用,具有一定的局限性。但是也可以实现,在上传的时候就直接指定了文件类型,后面就不用设置过多的配置。对于就是需要图片 视频 下载的应用,在上传就指定文件类型也是不错的选择。

你可能感兴趣的:(又拍云)