对象存储 S3

Amazon S3

互联网的硬盘:把文件存进一个几乎无限大的仓库,用一个网址就能读写,几乎不会丢。

存储与数据出现时间 · 2006按存储容量、请求次数与出网流量计费,标准存储约每 GB 每月 0.023 美元,冷存储更便宜。对象存储文件托管无限容量持久可靠
看官方文档

01 它是干嘛的

S3 是 AWS 的第一款产品,也是整个云存储的行业标准。它最容易被误解的地方在于「它不是硬盘」:它没有文件夹、不能打开某个文件改几个字节、也不能像 U 盘一样挂到系统里。它是一个只用网络接口读写的巨大仓库,容量近乎无限、可靠性极高,价格还很便宜,因此成了「互联网的硬盘」。

02 为什么会有它

在 S3 之前:文件存哪儿都别扭

过去存放海量文件只有两条路。一条是用硬盘:容量有限、会坏、要人工备份,一部高清电影就能塞满;硬盘就像只能装那么点东西的抽屉,装不下就得再买一个,还得记得每个抽屉里放了什么。另一条是搭一套专业存储系统,但这要买昂贵的设备、请懂行的人维护,普通公司根本玩不起。

而互联网公司要存的东西又特别多又特别杂:用户头像、商品图片、日志、备份、视频。这些东西数量以亿计、单个体积大小不一、绝大多数存进去之后就很少改动,却必须随时能取出来。用传统硬盘或数据库来装它们,既贵又容易出事。

亚马逊的解法很反常:干脆把存储做成一个「通过网络地址就能读写」的服务。你不需要知道文件在哪台机器上,只要凭一个地址发起请求,就能存进去或取出来;底层硬件的损坏、扩容、复制全部由服务方在幕后处理。2006 年 S3 上线时,它第一次让「存储」变成了一种像自来水一样按用量计费的公共资源。

03 它怎么工作

S3 只有三个动作:往桶里放对象、从桶里取对象、按规则管理对象。所谓「目录」其实只是文件名里的一段斜杠,底层是完全扁平的,这正是它能做到近乎无限容量的原因。

一个文件从上传到被全球读取① 申请上传凭证② 授权分片直传③ 合并为一个对象④ 记录元数据⑤ 热点自动上边缘客户端浏览器 / App存储服务 API签发临时上传凭证分片并发上传大文件切块,失败只重传一块桶(Bucket)无数个对象,没有目录树元数据索引大小 / 类型 / 哈希 / 标签边缘缓存热点文件就近返回对象存储不是硬盘:不能像文件夹那样随意改名,一个文件改名 = 复制一份再删除旧的。控制入口数据流向
重点看两处:一是扁平的「桶 + 键」结构(没有真正的目录树),二是大文件被切成多块并行上传再合并。理解这两点,就理解了对象存储与硬盘的根本差别。

一个文件是怎么存进 S3 的:桶、对象与分片上传

  1. 1
    ① 建一个桶(Bucket)

    桶是存放对象的顶层容器,名字必须全球唯一,像是你在互联网这个巨大仓库里租下的一个专属货架区。

  2. 2
    ② 用 PUT 上传对象

    上传时你给文件起一个「键(Key)」,比如 photos/2026/cat.jpg。键里的斜杠只是命名习惯,方便人看懂,系统里并不存在真正的文件夹。

  3. 3
    ③ 大文件分片并发上传

    超大文件被切成许多小块同时传输,某一块失败了只需重传那一块,几个 GB 的文件也能稳定上传完成。

  4. 4
    ④ 用 GET 读取,或生成临时地址

    读取同样只是一次网络请求。需要让别人下载时,可以生成一个带有效期与权限的临时链接,既方便又不用暴露密钥。

  5. 5
    ⑤ 生命周期规则自动整理

    可以设定规则,让旧文件自动转入更便宜的存储、到期自动删除、或复制一份到别的地区做备份,全程无需人工干预。

04 谁在用它

网站与应用的图片、附件托管

用户上传的头像、附件、商品图都放进 S3,配合 CDN 分发,读写快、成本低。

数据备份与归档

数据库备份、历史日志长期存放,靠极低的存储费与高可靠性替企业省下磁带与硬盘的钱。

数据湖的底座

把各种原始数据先集中倒进 S3,再由分析工具统一处理,是当下流行的数据架构起点。

网站静态资源

前端页面、图片、脚本直接存 S3 并由 CDN 分发,无需自建文件服务器。

大数据与机器学习的数据源

S3 常作为训练数据、日志、报表的统一存放地,被各类计算服务直接读取。

05 怎么用

核心概念只有「桶、键、权限」三样,会命令行就能立刻开始存取文件。

  1. 01在控制台创建一个桶,选择离用户最近的区域,并保持「阻止公开访问」的默认设置。
  2. 02为主机或程序创建一个访问密钥,注意只授予它需要的那几个桶的权限,不要给全权限。
  3. 03用命令行或代码把文件上传进桶,键名建议带上日期与业务含义,便于日后查找。
  4. 04需要公网访问时,绑定自定义域名或开启 CDN,而不是直接把整个桶设为公开。
  5. 05配置生命周期规则:临时文件到期自动清理,冷数据自动转入更便宜的存储层。
  6. 06重要数据开启版本控制与跨区域复制,防止误删或区域性故障导致数据丢失。
用 AWS CLI 完成建桶、上传、下载与临时链接bash
# 1. 创建桶(桶名需全球唯一)
aws s3api create-bucket --bucket my-bucket-2026 --region us-east-1

# 2. 上传一个文件:键就是完整路径字符串
aws s3api put-object \
  --bucket my-bucket-2026 --key photos/cat.jpg --body ./cat.jpg

# 3. 下载(也可以用 aws s3 cp 做整目录同步)
aws s3api get-object \
  --bucket my-bucket-2026 --key photos/cat.jpg ./downloaded.jpg

# 4. 生成 1 小时有效的临时下载地址(预签名 URL)
aws s3 presign s3://my-bucket-2026/photos/cat.jpg --expires-in 3600

避坑提示

  • !把长期密钥写进代码是云上最常见的事故来源。程序请用临时凭证,给别人下载用带有效期的临时链接。
  • !对象存储不支持「改名」:改名等于复制一份再删掉旧的,大文件操作前先算一下耗时与费用。
  • !桶名全球唯一且创建后不能改,命名时带上业务与环境(如 prod-assets-cn),否则以后会冲突。

06 关键概念

对象存储
用「桶 + 键」存放文件的服务,没有目录树,也不能像硬盘那样只改文件的一小段。
桶(Bucket)
存放对象的顶层容器,名字全球唯一,类似你在巨大仓库里租下的专属货架。
键(Key)
对象的名字,可以写成带斜杠的长字符串,看起来像路径但并不是真的文件夹。
预签名 URL
服务器临时签发、带权限与有效期的下载地址,让下载者无需知道密钥。
版本控制
每次覆盖都保留历史版本,误删或误改可以随时找回上一版。

07 容易混淆的对比

阿里云 OSS / 腾讯云 COS功能与用法高度类似,国内访问快、合规方便,是面向中国大陆业务时的常用选择。
本地 NFS 或自建文件服务器能像硬盘一样挂载使用,但容量有上限、要自己备份,且很难扛住设备损坏。
图软件图鉴

纯静态站点,无后端、无追踪。内容为中文原创撰写,用于帮助非技术读者理解主流软件产品。

关于本站

全部内容在构建时生成
产品名称与商标归各自公司所有

© 2026 软件图鉴Nuxt 4 · Vue 3 · Tailwind 4 · 纯静态