背景信息
基于安全合规要求,华为云对象存储服务OBS禁止通过OBS的默认域名(桶访问域名或静态网站访问域名)在线预览桶内对象,即使用上述域名从浏览器访问桶内对象(如视频、图片、网页等)时,不会显示对象内容,而是以附件形式下载。
OBS不支持在线预览对象而是以附件形式下载对象的生效时间和区域如下:
自2022年1月1日起生效:华北-北京一、华北-北京四、华北-乌兰察布一、华东-上海一、华东-上海二、华南-广州、西南-贵阳一
自2022年3月25日起生效:中国-香港、亚太-曼谷、亚太-新加坡、非洲-约翰内斯堡、拉美-墨西哥城一、拉美-墨西哥城二、拉美-圣保罗一、拉美-圣地亚哥
方案一:使用OBS自定义域名访问(不开启CDN加速)
在使用浏览器访问存储在桶中的文件时,文件的预览和下载行为由HTTP响应头Content-Disposition决定:
- 使用桶默认域名访问时,出于安全合规考虑,OBS会强制在响应头中添加“Content-Disposition:attachment”,表现为下载对象。
- 为桶绑定自定义域名后,使用自定义域名访问时,OBS不会强制在响应头中添加“Content-Disposition:attachment”,表现为预览对象。
配置步骤
- 为OBS桶绑定自定义域名。
绑定的方法请参见绑定自定义域名。按照参考文档配置时,不需要开启CDN加速,CNAME配置为OBS桶域名。
图1 为桶绑定自定义域名
- 验证对象是否可以在线预览。
配置成功后,在对象列表页面单击对象名称,在对象基本信息页面单击“自定义域名链接”下的“复制全部”,将复制的对象访问链接分享给用户,用户可以在浏览器中通过此链接直接预览文件。
问题排查
如果完成以上配置后,仍不能在线预览文件,请进行如下检查:
- 检查文件的元数据是否设置了“ContentDisposition: attachment”,如果是,请删除该元数据。
- 检查文件的元数据中的“ContentType”是否正确匹配文件格式且为浏览器原生支持预览的文件格式:
配置步骤
- 为OBS桶绑定自定义域名。
绑定的方法请参见绑定自定义域名。按照参考文档配置时,需要开启CDN加速,CNAME配置为CDN分配的CNAME域名。
- 登录CDN控制台的“域名管理”界面,单击相应域名的名称,进行如下配置:
- 在“回源配置 > 源站配置”中,将“源站类型”配置为“OBS桶域名”,并将“源站地址”配置为OBS桶域名,HTTP端口:80,HTTPS端口:443。
图2 源站配置
- 在相应域名的“高级配置”中添加“Content-Disposition”响应头,取值为“inline”。
图3 高级配置
- 验证对象是否可以在线预览。
配置成功后,在对象列表页面单击对象名称,在对象基本信息页面单击“自定义域名链接”下的“复制全部”,将复制的对象访问链接分享给用户,用户可以在浏览器中通过此链接直接预览文件。
问题排查
如果完成以上配置后,仍不能在线预览文件,请进行如下检查:
- 清理本地浏览器缓存后重试。
- 在CDN控制台刷新缓存,具体方法请参见缓存刷新。
- 检查文件的元数据是否设置了“ContentDisposition: attachment”,如果是,请删除该元数据。
- 检查文件的元数据中的“ContentType”是否正确匹配文件格式且为浏览器原生支持预览的文件格式:
配置步骤
- 在CDN控制台将准备好的自有域名添加为加速域名,并将OBS私有桶设置为源站。
添加加速域名时,关键参数按如下设置,其他参数设置请参见添加CDN加速域名。
- 业务类型:根据您的业务类型,选择“网站加速”或“文件下载加速”或“点播加速”。
- 源站:单击“添加源站”,“源站类型”选择“OBS桶域名”,“源站地址”配置为OBS桶域名(可在桶概览页面的“域名信息”区域查询“访问域名”信息)。
图4 设置源站类型
- 添加完加速域名后,再为域名设置自定义HTTP响应头“Content-Disposition”,取值为“inline”。
图5 高级配置
- 在域名列表页单击加速域名的名称,进入域名概览页面。
- 切换至“高级配置”页签,单击“HTTP header配置”旁边的
。 - 在“编辑HTTP header”弹窗,单击“添加”,设置响应头名称为“Content-Disposition”,响应头取值为“inline”。
- 单击“确定”。
- 在DNS上进行CNAME配置。
配置方法请参见绑定自定义域名中的CNAME配置步骤。其中,CNAME配置中的“记录值”为CDN分配的CNAME域名(在CDN域名列表页面获取)。
图6 获取CDN分配的CNAME域名
图7 添加记录集
- 验证对象是否可以在线预览。
配置成功后,将“http://CDN加速域名/对象访问路径”拼接成的链接分享给用户,用户可以在浏览器中通过此链接直接预览文件。
- CDN加速域名:为1添加的加速域名。
- 对象访问路径:请在对象列表页面,单击对象操作列的“分享”,在“分享文件”弹窗,单击链接信息下的“复制路径”。详情请参见分享对象。
例如:您配置的加速域名为“testexample.com”,对象访问路径为“testfolder/test.txt”,则拼接的用户访问对象链接为:http://testexample.com/testfolder/test.txt
问题排查
如果完成以上配置后,仍不能在线预览文件,请进行如下检查:
- 清理本地浏览器缓存后重试。
- 在CDN控制台刷新缓存,具体方法请参见缓存刷新。
- 检查文件的元数据是否设置了“ContentDisposition: attachment”,如果是,请删除该元数据。
- 检查文件的元数据中的“ContentType”是否正确匹配文件格式且为浏览器原生支持预览的文件格式: