由于业务需要,最近从OSS新创建了一个bucket,使用之前的上传代码进行上传图片时可以看到图片上传成功,但是打开图片地址之后不能正常访问,浏览器会提示进行下载.好奇同样的代码,另一个bucket能正常上传,但是新创建的bucket使用同样代码之后就出现这个问题,怀疑是bucket配置问题,仔细翻阅资料之后终于知道了是哪的问题,在此简单记录一下.
官方说明:访问您的图片文件,无法预览,直接下载,是由于从从2019年9月23日起,针对之后新建的Bucket,直接使用OSS提供的默认域名,从互联网访问OSS上该Bucket的图片类型文件时,mimetype为以下值,Response
Header中会自动加上Content-Disposition:'attachment=filename;'
。即从浏览器访问图片类型文件时,会以附件形式进行下载,如果您要直接在浏览器中预览文件而非下载文件,请设置文件HTTP头中的Content-Disposition为inline并使用Bucket绑定的自定义域名进行访问
首先处理的第一个问题就是需要配置一个自定义的域名,这个规则是从2019.9.23之后开始生效的,就是说从2019.9.23之后创建的bucket需要配置已备案的域名,查看了一下之前的bucket是2019.6月份,当时没有配置备案域名也可以访问.域名配置可以参考:https://help.aliyun.com/document_detail/195675.htm?spm=a2c4g.11186623.0.0.736922936aZ1CL
另外记录一下其他的处理方案:
因Content-Type
设置导致的强制下载问题,您需要根据文件类型设置合理的Content-Type
,同时确保浏览器支持预览该文件类型。关于Content-Type的更多信息,请参见如何设置Content-Type(MIME)
因Content-Disposition设置导致的强制下载问题,您需要将Object Meta中的Content-Disposition设置为inline。具体步骤,请参见管理文件元信息
因CDN缓存导致的强制下载问题,您需要更新CDN缓存信息。
因浏览器不支持预览文件格式导致的强制下载,您需要确认浏览器已安装支持预览当前格式文件的插件。
最后附上官方参考链接:如何配置访问OSS文件时是预览行为?
来源地址:https://blog.csdn.net/weixin_43401380/article/details/129755309