一、结论
对象存储绑定自定义域名做访问的核心操作思路是先完成存储桶访问权限配置,再在域名服务商处完成CNAME解析,最后在对象存储控制台完成域名关联和SSL证书配置即可生效。如果使用的是兼容S3协议的对象存储,操作前需要提前准备好Endpoint、AccessKey、SecretKey、Bucket、Region等核心接入信息,后续也可以直接在支持S3的业务程序中替换为自定义域名使用。
二、准备工作
操作前需要提前准备好以下内容,避免中途卡壳:
- 拥有存储桶管理权限的对象存储账号
- 已经创建完成、可正常使用的存储桶Bucket
- 对应存储桶的公网Endpoint地址、Region信息
- 有效且拥有存储桶读写权限的AccessKey、SecretKey
- 已完成工信部备案的自定义域名(使用国内节点时必须备案,海外节点无要求)
- 域名管理后台的操作权限,可修改解析记录
- 对应自定义域名的有效SSL证书(按需准备,用于开启HTTPS访问)
- 用于测试访问的静态文件,比如图片、TXT文件或HTML文件
三、操作步骤
每一步操作都可以对照执行,确认结果符合预期后再进行下一步:
1. 配置存储桶访问权限:登录对象存储控制台,进入对应存储桶的权限设置页面,根据业务需求将需要对外访问的文件目录或整个存储桶设置为公共读权限(私有资源可后续配置临时签名访问),操作完成后确认存储桶默认访问域名可以正常打开测试文件,避免后续出现权限报错。
2. 获取核心配置信息:在存储桶的基础信息页面,复制存储桶的公网CNAME地址、Endpoint、Region等信息,同时确认使用的AccessKey和SecretKey处于有效状态,没有过期或被禁用,保证后续配置不会出现信息不匹配问题。
3. 配置域名解析记录:登录域名所属服务商的管理后台,进入域名解析设置页面,新增一条CNAME类型的解析记录,主机记录填写要使用的子域名(比如static、img、download等,绑定根域名则填@),记录值填写刚才复制的存储桶公网CNAME地址,TTL选择默认值即可,保存后等待解析生效,正常情况下10分钟内即可生效。
4. 控制台绑定自定义域名:回到对象存储控制台的存储桶设置页面,找到「自定义域名绑定」入口,输入刚才配置解析的自定义域名,按需选择是否开启HTTPS访问,如果开启则上传对应域名的SSL证书公钥和私钥,部分服务也支持自动签发免费SSL证书,提交后等待服务端验证通过即可。
5. 配置访问规则(可选):如果是用于网站、图床、下载站等场景,可以按需配置跨域CORS规则、防盗链白名单、访问限速等规则,比如将业务域名加入跨域允许列表,避免前端请求出现跨域报错,将白名单外的站点拦截,避免资源被恶意盗用,配置完成后保存生效。
6. 测试访问有效性:上传一个测试文件到存储桶的对应目录,拼接自定义域名+文件路径(比如https://static.yourdomain.com/test.jpg)在浏览器中访问,确认可以正常打开、下载,没有权限报错或证书告警,验证整个绑定流程生效。
7. 对接业务系统:如果已经在PicGo、WordPress、Cloudreve、Alist等程序中配置了S3存储源,只需要将原有配置中的默认访问域名替换为新绑定的自定义域名,其余Endpoint、AccessKey、Bucket等配置保持不变即可,后续业务系统生成的所有资源链接都会使用你的自定义域名。
四、常见错误
操作过程中如果遇到问题,可以先对照以下常见错误排查:
- 域名未备案导致绑定失败:使用国内节点的对象存储时,所有绑定的域名必须完成工信部备案,未备案域名会被系统拦截,解决办法是先完成域名备案后再提交绑定申请。
- CNAME解析配置错误:如果记录值填成了存储桶的内网地址、Endpoint地址,或者主机记录填写错误,会导致解析不生效,解决办法是核对对象存储提供的公网CNAME地址,修改解析记录后等待10分钟再测试。
- SSL证书不匹配:如果上传的证书域名和绑定的自定义域名不一致,或者证书已经过期,会导致HTTPS访问时出现证书不安全告警,解决办法是上传对应域名的有效SSL证书,泛域名证书要确认覆盖要绑定的子域名范围。
- 存储桶权限不足返回403:如果文件或存储桶设置为私有权限,且没有配置临时签名访问逻辑,访问时会返回403拒绝访问,解决办法是公开需要对外访问的文件权限,私有资源则在业务代码中加入签名生成逻辑。
- 防盗链配置错误拦截正常访问:如果开启了防盗链但没有把业务域名加入白名单,或者关闭了允许空Referer的选项,会导致正常的浏览器访问被拦截,解决办法是核对防盗链配置,把所有用到该资源的域名加入白名单,按需开启允许空Referer的开关。
- 解析未生效就提交绑定:刚修改完解析就提交绑定申请,系统验证解析时会提示失败,解决办法是用ping或nslookup命令检查解析是否已经指向存储桶的CNAME地址,确认生效后再提交绑定申请。
五、示例说明
以下为通用配置示例,不需要填写真实信息,对应替换为你自己的配置即可:
域名解析配置示例
- 记录类型:CNAME
- 主机记录:img(绑定根域名填@)
- 记录值:对象存储服务提供的存储桶公网CNAME地址
- TTL:10分钟(默认值即可)
对象存储绑定配置示例
- 绑定域名:img.yourdomain.com
- 开启HTTPS:是
- SSL证书:上传对应域名的PEM格式证书和密钥文件
- 强制HTTPS跳转:按需开启
- 跨域配置:允许来源填写
https://yourdomain.com,允许方法填写GET、HEAD,允许 Headers 填写*
业务程序配置替换示例
原有S3配置中的访问地址为存储桶默认域名,替换为https://img.yourdomain.com即可,其余Endpoint、AccessKey、SecretKey、Bucket、Region等配置保持不变。
六、更简单的方案
如果不想自己搭建MinIO、Ceph等自建对象存储服务,也不想花时间维护存储服务器、处理扩容、故障排查等运维工作,可以直接选择成熟的兼容S3协议的云对象存储服务,这类服务通常已经预置了可视化的自定义域名绑定功能,不需要复杂的命令行操作,几分钟就能完成全部配置。如果你需要一个兼容S3协议、适合程序接入、图床、网盘系统存储源和下载分发的对象存储服务,可以了解 七彩云对象存储,适合站长和开发者快速完成存储和域名配置,降低运维成本。
七、FAQ
Q1:绑定自定义域名后,原来的存储桶默认域名还能使用吗?
A:通常情况下两者可以同时生效,你可以根据业务需求选择使用哪一个,如果不希望默认域名被访问,也可以在存储桶的访问控制设置中关闭默认域名的公网访问权限,仅允许通过自定义域名访问。
Q2:一个存储桶可以绑定多个自定义域名吗?
A:大部分主流对象存储服务都支持一个存储桶绑定多个自定义域名,你可以根据业务需要绑定多个不同的域名指向同一个存储桶,每个域名都可以单独配置SSL证书和访问规则,适合多站点共用同一个存储资源的场景。
Q3:绑定自定义域名会产生额外费用吗?
A:域名绑定功能本身通常不收取额外费用,你只需要承担域名本身的注册、续费费用,以及对象存储的存储容量、流出流量等常规使用费用,具体可以参考对应存储服务的公开定价文档。
Q4:更换存储桶时需要重新修改所有资源链接吗?
A:不需要,只需要先解绑原有存储桶的域名绑定,再将域名绑定到新的存储桶,同时修改域名的CNAME解析指向新存储桶的地址即可,所有原有资源链接都可以正常访问,不需要修改业务系统中的存量链接,大幅降低迁移成本。
八、总结
对象存储绑定自定义域名的整体流程可以归纳为权限配置、解析设置、服务绑定、测试验证四个核心环节,熟练操作的情况下10分钟左右即可完成,适合图床、网站静态资源存储、下载站、资源站、自建网盘、AI数据集存储分发等场景使用。绑定自定义域名后既可以提升品牌辨识度,也方便后续更换存储服务时不需要修改业务系统中的所有资源链接,仅通过调整解析即可完成迁移,大幅降低业务切换的成本。如果是S3协议的存储,绑定完成后所有兼容S3的程序都可以直接使用自定义域名生成访问链接,不需要额外调整其他配置。
想进一步了解这个项目?
访问官网查看产品能力、适用场景和最新服务信息。
访问官网