绑定自定义域名至Bucket默认域名
出于安全考虑,当您通过Bucket默认域名访问某些文件时,可能会触发强制下载或禁止下载。如果您希望在浏览器中正常预览或下载这些文件,您需要为Bucket绑定自定义域名,并通过自定义域名访问OSS文件。绑定自定义域名不会影响Bucket默认域名,您可以继续通过Bucket默认域名访问OSS文件。
使用场景
- 预览文件:出于安全考虑,通过OSS默认Bucket域名访问文件时,OSS会强制增加下载响应头,导致浏览器强制下载文件。使用自定义域名访问文件不会强制增加下载响应头,从而实现在浏览器中预览文件。关于使用OSS的默认Bucket域名访问文件,触发自动下载的生效时间和生效对象,请参见附录:强制下载命中的x-oss-ec规则。
- 访问.apk或.ipa文件:出于安全考虑,通过OSS默认Bucket域名访问.apk或.ipa文件时,OSS会返回400错误,错误码为ApkDownloadForbidden。使用自定义域名访问.apk或.ipa文件不会被阻断。关于使用OSS默认Bucket域名访问后缀为.apk或者.ipa文件,触发禁止访问的生效时间和生效对象,请参见附录:报错ApkDownloadForbidden。
- 品牌形象和专业性:将自定义域名绑定到OSS Bucket,提供个性化域名,增强品牌形象和专业性,增加用户信任度。
- 防止域名被拦截:一些应用或平台可能会对Bucket默认域名进行拦截。您可以为Bucket绑定自定义域名,以确保您的OSS Bucket中的资源能够被正常访问。
- 访问方便性:使用自定义域名访问OSS Bucket,方便易记,相比使用OSS默认域名,更加简洁友好,轻松访问和分享资源。
- 链接的持久性:绑定自定义域名到OSS Bucket后,即使后续存储位置或服务有变化,用户仍可使用相同域名访问资源,确保链接的持久性,长期可访问和使用存储资源。
使用限制
- 不支持绑定中文域名。
- 域名未在图片处理绑定。
- 每个域名只能绑定至一个Bucket。
- 每个Bucket最多可以绑定100个域名。
- 通过OSS管理控制台绑定自定义域名时,不允许绑定泛域名(将域名前缀设置为*,从而将主域名的所有子域名都指向Bucket默认域名)。通过CDN加速OSS时,允许绑定泛域名,但该域名不会在OSS管理控制台显示。
- 绑定的自定义域名中涉及的顶级域名必须满足指定后缀的要求,否则会被视为无效域名,最终导致域名绑定失败。更多信息,请参见顶级域名分类解析。
前提条件
操作步骤
步骤一:绑定自定义域名
根据域名所属服务提供商(可在域名信息查询(WHOIS)页面查询)和所属账号(可在云解析DNS控制台查询),参考对应的步骤将域名绑定至OSS Bucket。
将当前阿里云账号注册的域名,绑定至OSS Bucket的操作步骤如下:
- 登录OSS管理控制台。
- 单击Bucket 列表,然后单击目标Bucket名称。
- 在左侧导航栏,选择Bucket 配置>域名管理。
- 在域名管理页面,单击绑定域名。
- 在绑定域名面板,输入不带协议的自定义域名,例如
static.example.com,然后单击确认绑定。 - 添加CNAME记录,将自定义域名
static.example.com解析至被绑定的Bucket的默认外网域名。
步骤二:验证自定义域名
绑定自定义域名后,当用户通过自定义域名发起请求时,该请求会通过 DNS 解析到 Bucket 默认域名。您可以使用nslookup或dig命令来验证自定义域名解析是否生效。
将static.example.com替换为您要查询的域名,然后执行以下命令。
nslookup -type=CNAME static.example.com
域名解析结果显示绑定的Bucket的外网访问域名,说明自定义域名解析已生效。

步骤三:使用自定义域名
自定义域名解析生效后,您可以使用HTTP协议和自定义域名构造包含签名和有效期的URL,URL的格式为http://YourDomain/ObjectName?签名参数,然后使用该URL访问OSS文件。
- 获取预签名URL。
- 在浏览器中访问预签名URL。

相关API
- 关于创建域名所有权验证所需的CnameToken的接口,请参见CreateCnameToken。
- 关于获取已创建的CnameToken的接口,请参见GetCnameToken。
- 关于为某个Bucket绑定自定义域名的接口,请参见PutCname。
- 关于查询某个Bucket下绑定的所有自定义域名的接口,请参见ListCname。
- 关于删除某个Bucket已绑定的自定义域名的接口,请参见DeleteCname。
- 关于使用阿里云解析DNS添加TXT解析记录或CNAME解析记录的接口,请参见AddDomainRecord - 根据传入参数添加解析记录。
后续操作
通过HTTPS协议访问OSS文件
自定义域名在未配置SSL证书的情况下,默认不支持HTTPS协议访问。通过HTTPS协议访问自定义域名时,浏览器会显示不安全连接警告。为了通过HTTPS协议访问OSS文件,需要为自定义域名配置证书。

使用不带签名的长期有效的URL访问OSS文件
您可以通过以下两种方式将文件设置为公共读:
- 设置文件为公共读:将 OSS 文件的权限设置为公共读。在这种情况下,文件的 URL 将没有有效期,任何人都可以访问。为了防止文件被其他网站盗用,您需要在 OSS 中配置防盗链。
- CDN加速OSS资源:保持 OSS 文件的权限为私有,通过 CDN 提供公共读访问。在这种情况下,文件的 URL 将没有有效期,任何人都可以访问。为了防止文件被其他网站盗用,您需要在 CDN 配置防盗链。

防止OSS文件被其他网站盗用
默认情况下,任何网站都可以显示您的OSS文件,这可能导致额外的请求费用和下行流量费用。您可以通过防盗链,设置Referer黑名单或白名单来限制访问来源。配置防盗链后,未授权的网站将无法显示您的OSS文件,同时失败的请求也不会产生请求费用和下行流量费用。

使用OSS托管静态网站
如果您使用OSS作为静态网站的服务器,直接存储和提供静态文件(如HTML、CSS、JavaScript等),以便用户通过互联网访问这些内容,除了绑定自定义域名外,您还需要为Bucket设置静态网站托管。

提升OSS文件在不同地域的下载速度
OSS Bucket 中的文件存储在某个地域(例如杭州)。为了提高不同地域用户下载 OSS 文件的速度,您可以使用CDN加速OSS。开启CDN加速后,OSS 文件会分发到各个地域的 CDN 缓存节点。用户在访问文件时,可以从离他们更近的缓存节点获取内容,从而有效提升下载速度。

提升OSS文件的远距离传输速度
OSS Bucket 中的文件存储在某个地域(例如杭州)。非中国内地的用户访问时,可能因传输距离较远导致上传和下载体验非常差。为提升 OSS 文件的远距离传输速度,您可以开启传输加速,将自定义域名绑定到 OSS 的传输加速域名,而不是Bucket默认域名。




