很多人都知道 S3 是 AWS 最常用的对象存储服务,用来存放图片、视频、备份文件,但一些隐藏的设计细节,往往被忽略。今天就来聊几个冷知识。
一、S3 没有「目录」的概念
很多人以为 S3 的 bucket 里有文件夹,其实并没有。
所谓「目录」,只是通过对象键名(Key)里的 / 分隔符模拟出来的。
这意味着:
- 删除目录,其实是批量删除带相同前缀的对象。
- 迁移数据时,路径规则比物理文件系统更灵活。
二、对象大小极限
- 单个对象最大支持 5TB。
- 但如果要上传超过 5GB 的对象,必须使用 Multipart Upload(分块上传)。
- 分块上传的好处是:断点续传更高效,失败只需重传部分数据。
三、强一致性 vs 最终一致性
早期的 S3 采用「最终一致性」,有时候上传完对象后马上读取,可能读不到最新版本。
现在 AWS 已经改为 强一致性:
- 新写入和覆盖对象会立即对所有读请求可见。
- 删除对象也会立即生效。
这对数据库备份、日志收集等场景特别重要。
四、S3 也能当静态网站服务器
很多人只用 S3 存储,但其实它可以直接托管静态网站:
- 支持 HTML、CSS、JS 直接访问。
- 搭配 CloudFront,就能实现全球 CDN 加速。
不少独立站、博客,其实就是「S3 + CloudFront」的组合。
五、数据生命周期管理
S3 提供 生命周期规则,能自动把文件转移到更便宜的存储层:
- 热数据 → S3 Standard
- 几乎不访问的数据 → S3 Glacier Deep Archive(成本极低)
这样可以在保证数据长期保存的同时,大幅降低存储成本。
总结
S3 看似只是「存文件」,但背后的架构设计和功能远比想象中要复杂。
从目录结构的伪装,到一致性模型的演进,再到生命周期管理,它已经成为全球最可靠的存储服务之一。
如果你只把 S3 当作「网盘」,那可能只用到了它 30% 的能力。