S3 协议与对象存储
字数: 0 字 时长: 0 分钟
概述
S3 (Simple Storage Service)是亚马逊 AWS 在 2006 年推出的对象存储服务,后来其底层通信协议(基于 Restful API)被广泛采纳为行业标准,称为 S3协议。
如今 S3 协议已成为对象存储领域的事实标准,不仅 AWS S3 本身,许多其他云服务商(如阿里云 OSS、腾讯云 COS)和开源项目(如 MinIO)都兼容 S3 协议。
对象存储是一种存储架构,与传统的文件系统不同,它将数据作为“对象”进行管理。每个对象包含:
- 数据本身(任意类型的文件或二进制内容)
- 元数据(描述对象的属性、如创建时间、类型、自定义标签)
- 全局唯一标识符(通过 URL 或键 Key 访问,而非文件路径)
S3 协议核心特性
1. Restful API 设计
S3 协议通过 HTTP/HTTPS 进行操作,常用 API 包括:
- PUT/GET/DELETE:上传、下载、删除对象
- LIST:列出存储桶中的对象
- HEAD:获取对象元信息
- Multipart Upload:支持大文件分块上传
2. 存储桶(Bucket)和对象(Object)
- 存储桶:是对象的容器,需全局唯一命名(类似域名),通常对应一个地域 (Region)
- 对象:通过键(Key)唯一标识,键可以包含前缀(雷士文件夹路径),例如
images/photo.jpg
3. 强一致模型
许多分布式系统为了保证高可用性,只能保证最终一致性,也就是数据更新后,系统可能暂时会返回旧数据,经过一段时间后,所有客户端最终才会看到最新的结果,本质是数据同步存在延迟。
而 S3 在数据更新后,任何后续的读请求都会立即返回最新写入的数据,称为强一致性模型。
4. AK/SK 认证
通过 Access Key 与 Secret Key 对请求进行签名
S3 对象存储的核心功能
- 数据自动跨多个设备(甚至多个可用区)冗余存储,高可用保证数据耐久性极高
- 支持多种存储层级,例如标准存储高频访问数据;低频存储低频访问数据;归档存储长期冷数据。
- 完备的加解密、版本控制、日志系统保证数据安全
- 支持高并发读写(无目录结构限制),支持大对象,可集成 CDN 加速全球访问
