OSS域名是对象存储服务分配给存储空间的访问地址,正确配置的核心是绑定自定义域名并完成CNAME解析,这样才能绕开默认域名的诸多限制,实现稳定、高速、合规的文件访问。本文从概念、配置到使用场景,一步步拆解OSS域名的完整玩法。
OSS域名到底是什么?
OSS(对象存储服务)本质是一个放在云端的“大硬盘”,而OSS域名就是访问这块硬盘里文件的“门牌号”,没有这个域名,你上传的图片、视频、安装包就无法通过互联网被他人获取。
比如你上传了一张图片到OSS,系统会给它生成一个URL链接,这个链接的开头部分就是OSS域名,业内共识认为,OSS域名由三部分构成:Bucket名称 + 地域节点 + 域名后缀,不同云厂商的叫法略有差异,简米云叫OSS,酷番云叫COS,华为云叫OBS,但原理完全一致都是通过HTTP协议提供文件的上传和下载。
值得注意的是(但这里不展开),很多新手容易把OSS域名和CDN域名搞混,两者的区别在后文会详细对比。
搞清楚OSS域名的两种形态
默认域名:系统自动分配的“临时工”
每个Bucket创建后,云厂商会自动分配一个默认域名,形如 bucket-name.region.aliyuncs.com,这个域名能用,但限制相当多:
- 地域标识明显:域名里带着
oss-cn-hangzhou之类的地域代码,用户一眼就能看出你的文件存放在哪个城市,对于隐私敏感的业务不太友好。 - 默认域名有流量限制:据行业公开信息,多数云厂商对默认域名的下行带宽有隐性限制,高峰期可能出现下载缓慢。
- 无法绑定HTTPS证书:默认域名不支持自定义SSL证书,只能使用厂商提供的共享证书,对于需要企业级加密传输的场景不够灵活。
- 直接访问会触发强制下载:如果文件类型是文本、图片以外的格式,默认域名会强制触发下载而不是在线预览。
自定义域名:绑定了自己域名的“正式工”
自定义域名就是把你自己购买的域名(static.example.com)通过CNAME记录指向OSS默认域名,配置成功后,用户访问 static.example.com/xxx.jpg 就能获取到OSS里的文件。
这样做的好处很直接:
- 品牌形象统一,用户看到的是你自己的域名而不是一串云厂商的字符。
- 可以自由配置SSL证书,实现全链路HTTPS加密。
- 后续接入CDN加速、WAF防护等安全产品时更加平滑。
如何正确配置OSS域名:分步骤实操
第一步:创建Bucket并记住地域节点
登录云厂商控制台,创建Bucket时选择地域(比如华东1杭州),创建完成后,在Bucket的基础设置里找到“访问域名”一栏,你会看到两个关键信息:默认域名和CNAME记录值,这个CNAME记录值就是后续解析要用的目标地址。
第二步:在域名服务商处添加CNAME解析
去你的域名注册商(如简米云DNS、酷番云DNSPod、Cloudflare等)的控制台,给子域名添加一条CNAME记录:
- 记录类型:CNAME
- 主机记录:填入你想要的子域名前缀,
static - 记录值:粘贴刚才从OSS控制台复制的CNAME地址
- TTL:默认600秒即可
操作完成后,一般等待几分钟到几小时不等,解析就会生效,可以在本地命令行用 ping static.example.com 验证,如果返回的IP地址和OSS默认域名解析出的IP一致,说明解析成功。
第三步:在OSS控制台绑定自定义域名
回到OSS控制台,在“域名管理”里点击“绑定域名”,输入你刚才解析的子域名,然后按提示完成验证(通常是上传一个验证文件或添加一条TXT记录),绑定完成后,还需要设置该域名对应的Bucket权限为“公共读”,否则外部用户访问文件会返回403错误。
第四步:配置HTTPS证书(强烈建议)
在SSL证书管理控制台申请免费证书(各类云厂商基本都提供一年期免费证书),或者上传你已有的付费证书,然后回到OSS的域名管理页面,为刚绑定的自定义域名配置证书,配置完成后,就可以用 https://static.example.com 访问文件了。
OSS域名配置后必须要做的三件事
设置回源规则,防止热盗链
单纯绑定自定义域名还不够,如果Bucket是公共读的,任何人都可以直接拿着默认域名去访问你的文件,绕开你自己的域名,造成流量费用飙升,行业里管这叫“盗链”,正确做法是:
- 在OSS控制台开启防盗链功能,填写你允许引用文件的域名白名单。
- 同时设置回源规则:当请求的Referer不在白名单内时,OSS返回默认的防盗链错误图片。
规划Bucket的读写权限
多读少写的场景,比如图片素材、静态页面资源,使用“公共读、私有写”模式即可,如果涉及用户上传文件(比如头像),务必保持私有写,所有上传操作走STS临时凭证(Security Token Service,安全令牌服务),避免把Bucket的AccessKey泄露在前端代码里。
接入CDN进一步加速
OSS自带的地域节点无法覆盖全国乃至全球的用户,如果访问者分布广泛,建议在OSS前面套一层CDN(内容分发网络),配置方式为:将自定义域名的CNAME从OSS改为指向CDN加速域名,然后在CDN控制台将源站设置为OSS的默认域名,这样用户实际访问的是CDN边缘节点,首次请求时CDN回源到OSS拉取文件并缓存,后续请求直接从最近的节点返回,速度提升非常明显。
OSS默认域名和CDN加速域名的区别参考:
| 对比项 | OSS默认域名 | 自定义域名+CDN |
|---|---|---|
| 访问速度 | 受限于地域节点 | 边缘节点就近返回 |
| 带宽上限 | 有隐性限制 | 可以弹性扩展 |
| 防攻击能力 | 基础防护 | 可叠加WAF、DDoS防护 |
| HTTPS证书 | 仅共享证书 | 自定义证书 |
| 成本结构 | 流量费+请求费 | 流量费+CDN流量费 |
用OSS域名搭建的几个典型场景
给小程序做图片存储
微信小程序的图片域名必须在后台配置合法域名白名单,直接使用OSS默认域名通常无法通过审核,因为默认域名包含的Bucket名称可能包含下划线等不合法字符,正确流程是:绑定自定义域名→配置HTTPS证书→在小程序后台将 https://static.example.com 加入合法域名列表,配置完成后,前端代码里的图片URL统一使用自定义域名开头。
网站静态资源分离
当你的网站经常出现图片加载慢、服务器带宽被打满的情况,用OSS存图片、动静分离是性价比最高的方案,操作路径:将网站主题里的图片路径全部替换为OSS域名地址,同时在OSS控制台开启图片处理服务(比如缩略图、水印),这样不同尺寸的图片请求会在OSS侧实时生成并返回,不需要你在服务器上装任何图像处理库。
视频点播文件存储
一套常见的视频点播架构中,视频原片存放在OSS里,转码任务使用云厂商的媒体处理服务,输出文件同样写入OSS,最终用户播放时,通过自定义域名访问视频文件,配合CDN的分片缓存能力,即使是1080P的影片也能做到秒开。
关于OSS域名的价格和成本,要知道这几点
OSS的计费项比较多,涉及存储空间费、流量费、请求次数费三种核心费用:
- 存储空间费:按你实际占用的存储量计费,标准存储和低频存储价格不同。
- 下行流量费:这是成本大头,用户每次从OSS下载文件都会产生公网出流量费用。
- 请求次数费:GET、PUT等API操作达到一定量级后开始计费。
针对地域的价格差异,偏远的可用区如内蒙古、成都等往往比中心城市节点的存储单价便宜不少,如果业务对延迟不敏感,可以选择这些区域的Bucket以降低存储成本。
想要省钱的两个关键策略:
- 把历史冷数据转移到低频或归档存储类型,访问频率低的数据完全没有必要放在标准存储里。
- 在OSS前面加CDN,CDN的回源流量走内网,不产生公网流量费,用户侧访问的是CDN节点,同样不会产生OSS外网流量费,这笔账算下来相当可观。
常见问题解答
OSS域名解析不生效,如何排查?
先确认CNAME记录是否正确,然后用命令行工具执行 nslookup 或 dig 查看解析结果,检查OSS控制台域名管理页是否显示“已验证”状态,如果域名刚做备案变更,云厂商的ICP备案系统同步需要时间,稍等片刻再刷新控制台。
自定义域名绑定的子域名有什么要求?
子域名长度在3到63个字符之间,只能包含字母、数字和连字符,不能以连字符开头或结尾,绑定后,该子域名不能再用于其他服务,比如你已经用 static.example.com 指向过一台服务器,需要先删除原来的解析记录再添加CNAME到OSS。
一个Bucket可以绑定多少个自定义域名?
根据主流云厂商的默认限制,大多数情况下一个Bucket可以绑定多个自定义域名,但每个域名都必须是已完成备案的独立域名,如果绑定多个域名,所有域名指向的是同一个Bucket空间,适合同一份内容通过不同域名对外提供服务的场景。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/638004.html





