TL;DR

  • 场景: 企业与个人将图片/音视频/静态资源迁移至阿里云 OSS,需稳态运维与控费
  • 结论: 按区域与权限精确配置,结合防盗链/CNAME/日志即可兼顾可用性与成本
  • 产出: 一份可落地,错误速查卡,覆盖常见配置与排障

基本介绍

阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。其数据设计持久性不低于 99.9999999999%(12个9),服务设计可用性或业务连续性不低于 99.995%。

基本概念

存储空间(Bucket)

存储空间是用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。

命名规范

  • 只能包括小写字母、数字、短横线
  • 必须以小写字母或数字开头和结尾
  • 长度必须在 3-63 字节之间

对象/文件(Object)

对象是 OSS 存储数据的基本单元,也被称为 OSS 的文件,对象由元信息(Object Meta)、用户数据(Data)和文件名(Key)组成。

地域(Region)

表示 OSS 的数据中心的物理位置,用户可以根据费用、请求来源等选择合适的地域创建 Bucket。

功能详解

Object 外链地址

如果 Bucket 设置为公开读权限,外部用户可以访问 Object,外链地址构成规则如下:

http://<你的bucket名字>.<数据中心服务域名>/<你的object名字>

防盗链

OSS 支持基于 HTTP header 中 Referer 字段的防盗链方法。

细节分析

  • 只有通过 URL 签名或匿名访问 Object 时才会做防盗链验证
  • 一个 Bucket 可以支持多个 referer 参数,配置时使用换行分割
  • Referer 参数支持通配符 *?

自定义域名(CNAME)

OSS 支持用户将自定义的域名绑定到属于自己的 Bucket 上。

错误速查

症状根因定位修复
403 Forbidden(匿名外链访问被拒)Referer 不在白名单/不允许空 Referer控制台权限→防盗链白名单补充域名或改用签名 URL
403 AccessDenied(无法读对象)Bucket 为 private 且请求未签名控制台 ACL生成服务端签名 URL 或改为 public-read
403 SignatureDoesNotMatch客户端时间漂移/签名串计算错误抓包比对NTP 对时;复核 Canonical 头
301/404使用了错误的 Endpoint/Region控制台查看 Bucket 所在 Region切换到正确区域 Endpoint
409 BucketAlreadyExists名称全局唯一被占用创建返回码更换全局唯一名称
自定义域名 404/证书异常CNAME 未生效/未绑定nslookup;浏览器证书链完成控制台绑定与证书部署
下行费用异常激增盗链或热点资源无缓存访问日志分析启用防盗链;前置 CDN 缓存