名字为什么重要
桶名会直接出现在访问域名里,因此必须满足更严格的字符与长度约束,并且在分区内全局唯一;对象键则几乎可以用任意字符,还可以用斜杠组织出层级感。命名看似小事,但它决定了请求能否被正确签名、能否被 CDN 与网关正确解析,也决定了列举操作是否高效。
基本信息
| 桶名长度 | 3 到 63 个字符(以官方文档为准) |
|---|---|
| 桶名字符 | 小写字母、数字、连字符,不能是 IP 地址形式 |
| 桶名唯一性 | 在所属分区内全局唯一 |
| 对象键长度 | 最长 1024 字节,UTF-8 编码 |
典型使用场景
- 按业务与区域规划桶名:便于权限策略与成本分摊按桶统计
- 设计对象键前缀:把时间与业务维度放前面以便按前缀批量处理
- 迁移与同步:键结构一致时,两端复制规则更简单可靠
- CDN 与网关接入:键名里的特殊字符需要正确编码才能被正确解析
- 多租户隔离:租户标识放在桶名或键前缀上,两种方式的管理成本不同
命名示例
命名示例
# 推荐:全部小写、用连字符分隔、包含环境与用途
demo-prod-logs
# 不建议:含大写或下划线,或与域名混用导致解析歧义
demo_Prod.Logs
# 对象键:前缀按查询维度设计,末段保留唯一标识
logs/2026/10/17/region-cn/app-0001.log
data/tenant-a/2026/10/17/batch-0007.parquet命名约束速查
| 对象 | 约束 | 常见踩坑 |
|---|---|---|
| 桶名 | 小写字母数字与连字符,3 到 63 字符 | 含大写或下划线被拒;形如 IP 的名字不允许 |
| 桶名唯一性 | 分区内全局唯一 | 换账号仍冲突,需带业务前缀区分 |
| 对象键 | 最长 1024 字节,可用任意字符 | 含空格与中文需正确编码,否则签名不匹配 |
| 键的顺序 | 列举按二进制序返回 | 按日期字符串命名要补零,否则顺序错乱 |
设计建议
- 前缀从查询维度出发:常用的筛选条件放前面,减少后续遍历
- 高并发写入避免使用序号连续的前缀,集中前缀会导致单分区热点
- 日期字段补零并统一为固定长度,保证列举顺序与时间一致
- 避免键名以斜杠开头,容易被误当成绝对路径而产生歧义
- 键里不要放会被频繁修改的业务状态,对象键应当稳定不变
键名支持中文等非 ASCII 字符,但请求与日志中都需要转义,排障时容易与乱码混淆;面向机器的数据建议统一使用 ASCII 命名。
各实现对桶名与键名的校验细节略有差异,跨平台使用时以目标存储的官方文档为准,写完命名规范后先做一轮兼容性验证。