对象存储是什么
对象存储以“桶加对象键”的两层结构组织数据:桶是命名空间,对象键就是完整路径字符串,通过 HTTP 接口(REST API 或 SDK)读写。它在容量上近乎无限扩展,按存储量与请求次数计费,适合图片视频、备份归档、日志、静态站点与大文件分发。
基本信息
| 数据模型 | 桶(Bucket)+ 对象键(Key),没有真正的目录层级 |
|---|---|
| 访问方式 | HTTP REST API、SDK、命令行工具、CDN 回源 |
| 存储级别 | 标准、低频、归档等,级别越低单价越低、取回代价越高 |
| 访问控制 | 桶策略、读写权限、签名 URL、STS 临时凭证 |
| 数据一致性 | 通常提供强一致读,具体以厂商文档为准 |
| 不适合 | 需要随机写、文件锁或 POSIX 语义的场景 |
三厂名称与工具
| 厂商 | 产品名 | 命令行工具 |
|---|---|---|
| 阿里云 | 对象存储 OSS | ossutil |
| 腾讯云 | 对象存储 COS | coscli |
| 华为云 | 对象存储 OBS | obsutil |
典型使用场景
- 静态资源托管:前端构建产物与图片放桶里,前面挂 CDN 加速
- 数据备份归档:数据库全量备份文件与日志定期上传,配合生命周期转归档
- 大文件分发:安装包、镜像与视频按需分发,用签名 URL 控制访问时效
- 日志汇聚:应用与访问日志直接投递到桶,再由计算任务离线分析
- 数据交付与交换:给外部合作方开放指定前缀的只读权限,用签名链接替代开放桶
命令行基本操作
命令行基本操作
ossutil ls oss://my-bucket/ # 列出桶内对象
ossutil cp -r ./dist oss://my-bucket/dist/ -u # 上传目录,只传有变化的文件
ossutil cp oss://my-bucket/backup/db.sql.gz ./ # 下载对象到本地
ossutil sign oss://my-bucket/report.pdf --timeout 3600 # 生成有时效的下载链接
# 腾讯云用 coscli、华为云用 obsutil,命令风格类似:cp / ls / rm对象存储与文件系统不是一回事:不支持随机写、文件锁与原地修改,应用改造前先评估接口模型。把需要数据库语义或大量小文件随机写的负载直接放到桶上,会遇到性能与一致性双重问题。
桶权限是数据泄露的高发点:不要开放匿名读写,尤其避免开放写权限,否则会被上传垃圾文件甚至违法内容。对外访问优先用签名 URL 或 CDN 鉴权,并给桶配置访问日志便于追溯。
生命周期规则是控制桶成本的主要手段:按前缀与天数把日志、备份转到低频或归档存储,并设置过期删除。规则一旦生效删除不可逆,先在测试桶上验证前缀匹配范围。