Logo
Section 1 / 5

桶和对象

让我们详细讨论S3中桶和对象的各个方面。

导入

桶和对象

让我们详细讨论S3中桶和对象的各个方面。

存储桶

从一般意义上讲,__存储桶__ 是由 AWS S3 提供并可用的公共云存储资源。 存储桶类似于文件或文件夹,它们包含数据以及一些描述性元数据。存储桶本质上是对象的容器,并提供对自身的访问管理控制。

![](http://network.jancsitech.net:9000/pageflex-ai/images/general/202509/1758270123441222738.svg)

存储桶的特性

  • 用作存储对象的容器。
  • 我们为存储桶分配的名称必须在全球范围内唯一,因为所有 AWS 账户共享相同的 DNS 兼容命名空间。
  • 默认情况下,每个账户最多可创建 100 个存储桶。
  • 通过提交支持工单,可以将默认限制提升至 1000 个。
  • 为了确保 S3 数据能够以低延迟访问,应将存储桶部署在靠近我们地理位置的位置。
  • 存储桶的区域只能在创建时选择,一旦创建后无法更改。
  • 存储桶的所有权不能从一个 AWS 账户转移到另一个账户。
  • 存储桶不能嵌套,即无法在一个存储桶内创建另一个存储桶。
  • 只能删除空的存储桶,这意味着只有当存储桶中不包含任何对象时才能被删除。

存储桶的命名规则

  • 存储桶名称长度必须在 3 到 63 个字符之间。
  • 名称只能包含小写字母、数字、点号和连字符。
  • 名称必须以字母或数字开头和结尾。
  • 名称不能采用 IP 地址格式,例如:127.8.45.12。

存储桶的用途

  • 数据存储
  • 数据归档
  • 数据备份
  • 灾难恢复
  • 静态网站托管
  • 应用程序托管
  • 存储数据的分析
  • 数据湖
  • 移动应用程序
  • 物联网(IoT)设备
  • 媒体托管(图片、视频、音频等)

上述大部分应用场景已在前一章中讨论过。

对象

__对象__ 是我们上传到存储桶中的数据文件。我们可以上传到存储桶的数据包括但不限于图像文件、视频文件、文本文件和文件夹。这些数据文件本身包含描述其特性的元数据。

我们可以在对象上执行多种操作,例如上传、下载、删除或移动对象。

![](http://network.jancsitech.net:9000/pageflex-ai/images/general/202509/1758270124585777335.svg)

对象的特性

  • 对象是上传到存储桶中的文件,包含描述数据文件的元数据。
  • 每个对象包含三部分:数据、键(key)和元数据。
  • 对象可以被读取、下载和移动。
  • 每个对象都有一个唯一的键值,用于单独标识该对象。
  • 对象大小可以从 0 KB 到 5 TB 不等。
  • 上传到 S3 的任何文件都会以 S3 对象的形式存储。
  • 通过 AWS 管理控制台,最大可上传 160 GB 的文件作为对象。
  • 若需上传超过 160 GB 的文件,必须使用 AWS CLI、AWS SDK 或 AWS REST API。
  • 下载 S3 对象时会产生数据传输费用。

对象的组成部分

键(Key)

键 是为每个对象分配的唯一名称。键用于区分不同的对象。

版本 ID

S3 会为对象生成一个版本 ID(字符串),并将其分配给该对象。键与版本 ID 的组合用于唯一标识对象。

元数据

元数据 是一组键值对,例如:

1{ 2 name: "object1" 3 key : "value" 4}

这是与存储在键值对中的数据文件相关的信息。

值(Value)

值 指的是存储在存储桶中的内容,即字节序列。其大小范围从 0 KB 到 5 TB。

子资源(Subresources)

如其名称所示,子资源 与其它资源(如对象或存储桶)相关联,用于存储特定于对象的信息。

访问控制信息

默认情况下,存储桶中的对象是私有的。但可以根据需要更改访问权限。访问控制信息 是用于控制其他用户访问对象的依据。

上传对象

上传方式

  • 可以使用 AWS SDK、AWS REST API 或 AWS CLI 在一次操作中上传对象。
  • 如果希望将单个对象作为一个整体上传,可通过 AWS 管理控制台轻松完成;若需分块上传,则需使用 AWS SDK、AWS REST API 或 AWS CLI。

删除对象

对象删除可通过以下任意方式实现:

  • AWS 管理控制台
  • AWS SDKs
  • AWS REST API
  • AWS CLI

删除选项

  1. 删除单个对象
  2. 批量删除多个对象

键(Key)

我们可以在一个存储桶中上传多个对象。但如果这样做,就需要能够区分这些对象。

为了在存储桶中区分多个对象,每个对象都会被分配一个唯一的标识符,称为“键”。每个存储桶中的对象都有且仅有一个键。

正如姓名、学号和班级共同定义一名学生一样,存储桶名、键和版本 ID 的组合可以唯一标识每一个对象。

![](http://network.jancsitech.net:9000/pageflex-ai/images/general/202509/1758270125670722822.svg)

入门

S3 存储类别