在使用阿里云OSS进行文件存储时,可以在上传文件时指定Content-Type
https://help.aliyun.com/document_detail/31955.html?spm=a2c4g.11186623.6.1475.6d6d718bF82eGA
这样
1)当一个上传到OSS的文件被指定为application/octet-stream时,在浏览器中打开OSS文件链接时,浏览器会默认进行下载
具体content-type参考 https://www.runoob.com/http/http-content-type.html
2)当一个上传到OSS的文件被指定为video/mpeg4时(其他可被浏览器打开的文件类型类似),在浏览器中打开OSS文件链接时,浏览器会默认打开
但是,在实际开发过程中,一个上传的OSS文件,并不能明确的表明是用于下载还是预览,甚至同一个文件可能同时用于下载和预览,那么如何在下载文件时指定是下载还是预览呢?
在官方文档中,已经有相关的说明
https://help.aliyun.com/document_detail/31980.html?spm=a2c4g.11186623.6.1513.3be820beigEIyY
即:
OSS支持在GET请求中通过请求头来自定义响应头,但只有请求成功(即返回码为 200 OK )才会将响应头的值设置成GET请求头中指定的值。
但需要注意的是
- OSS不支持在匿名访问的GET请求中自定义响应头。
- 用户发送的GET请求必须携带签名。
这样在下载文件时,指定response-content-type即可。