设置对象的存储类 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

设置对象的存储类

可以在上传对象时为其指定存储类。如果未指定,则 Amazon S3 对通用存储桶中的对象使用默认 Amazon S3 Standard 存储类。还可以通过使用 Amazon S3 控制台、Amazon SDK 或 Amazon Command Line Interface(Amazon CLI),将已存储在 Amazon S3 通用存储桶中的对象的存储类更改为任何其它存储类。所有这些方法都使用 Amazon S3 API 操作将请求发送到 Amazon S3。

注意

您无法更改存储在目录存储桶中的对象的存储类。

可以通过向存储桶添加 S3 生命周期配置来指示 Amazon S3 自动更改对象的存储类。有关更多信息,请参阅 管理对象的生命周期

在设置 S3 复制配置时,可以将已复制对象的存储类设置为其它任何存储类。但是,您无法复制存储在 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类中的对象。有关更多信息,请参阅 复制配置文件元素

以编程方式设置存储类时,需要提供存储类的值。以下是存储类的控制台名称及其相应 API 值的列表:

  • 低冗余存储REDUCED_REDUNDANCY

  • S3 Express One ZoneEXPRESS_ONEZONE

  • S3 Glacier Deep ArchiveDEEP_ARCHIVE

  • S3 Glacier Flexible RetrievalGLACIER

  • S3 Glacier Instant RetrievalGLACIER_IR

  • S3 Intelligent-TieringINTELLIGENT_TIERING

  • S3 One Zone-IAONEZONE_IA

  • S3 StandardSTANDARD

  • S3 Standard-IASTANDARD_IA

设置新对象的存储类

要在上传对象时设置存储类,可以使用以下方法。

要在控制台中上传新对象时设置存储类,请执行以下操作:

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择通用存储桶

  3. 在存储桶列表中,选择要将文件夹和文件上传到的存储桶的名称。

  4. 请选择 Upload(上传)。

  5. 上传窗口中,选择属性

  6. 在“存储类”下,为正在上传的文件选择存储类。

  7. (可选)为您正在上传的文件配置任何其它属性。有关更多信息,请参阅上传对象

  8. 在上传窗口中,执行下列操作之一:

    • 将文件和文件夹拖到“上传”窗口。

    • 选择添加文件添加文件夹,选择要上传的文件或文件夹,然后选择打开

  9. 在页面底部,选择上传

使用 PutObjectPOST ObjectCreateMultipartUpload API 操作创建对象时,可以在对象上指定存储类,并添加 x-amz-storage-class 标头。如果您未添加此标头,Amazon S3 将使用默认的 S3 Standard (STANDARD) 存储类。

此示例请求使用 PutObject 命令将新对象的存储类设置为 S3 Intelligent-Tiering:

PUT /my-image.jpg HTTP/1.1 Host: amzn-s3-demo-bucket1.s3.Region.amazonaws.com Date: Wed, 12 Oct 2009 17:50:00 GMT Authorization: authorization string Content-Type: image/jpeg Content-Length: 11434 Expect: 100-continue x-amz-storage-class: DEEP_ARCHIVE

此示例使用 put-object 命令将 my_images.tar.bz2 上传到 GLACIER 存储类中的 amzn-s3-demo-bucket1

aws s3api put-object --bucket amzn-s3-demo-bucket1 --key dir-1/my_images.tar.bz2 --storage-class GLACIER --body my_images.tar.bz2

如果对象大小超过 5 GB,请使用以下命令来设置存储类:

aws s3 cp large_test_file s3://amzn-s3-demo-bucket1 --storage-class GLACIER

更改现有对象的存储类

要在上传对象时设置存储类,可以使用以下方法。

如果对象大小小于 5 GB,则可以使用 Amazon S3 控制台来更改对象的存储类。如果更大,我们建议添加 S3 生命周期配置来更改对象的存储类。

要在控制台中更改对象的存储类,请执行以下操作:

  1. 登录到Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择通用存储桶

  3. 在存储桶列表中,选择包含您想要更改的对象的存储桶的名称。

  4. 选中待更改对象的名称左侧的复选框。

  5. 操作菜单上,从显示的选项列表中选择编辑存储类

  6. 从可用于对象的存储类中进行选择。

  7. 其它复制设置下,选择是要复制源设置请勿指定设置还是指定设置复制源设置是默认选项。如果您只想复制不带源设置属性的对象,请选择请勿指定设置。选择指定设置,来指定存储类、ACL、对象标签、元数据、服务器端加密和其它校验和的设置。

  8. 选择右下角的保存更改。Amazon S3 将保存更改。

要更改现有对象的存储类,请使用以下方法。

此示例请求使用 PutObject 命令将新对象的存储类设置为 S3 Intelligent-Tiering:

PUT /my-image.jpg HTTP/1.1 Host: amzn-s3-demo-bucket1.s3.Region.amazonaws.com Date: Wed, 12 Oct 2009 17:50:00 GMT Authorization: authorization string Content-Type: image/jpeg Content-Length: 11434 Expect: 100-continue x-amz-storage-class: DEEP_ARCHIVE

此示例使用 cp 命令将现有对象的存储类从其当前存储类更改为 DEEP_ARCHIVE 存储类:

aws s3 cp object_S3_URI object_S3_URI --storage-class DEEP_ARCHIVE

将访问策略权限限制到特定存储类

在授予 Amazon S3 操作的访问策略权限时,您可以使用 s3:x-amz-storage-class 条件键限制存储上传的对象时使用的存储类。例如,授予 s3:PutObject 权限时,您可以将对象上传限制到特定的存储类。有关策略示例,请参阅示例:将对象上传限制为具有特定存储类的对象

有关在策略中使用条件的更多信息和 Amazon S3 条件键的完整列表,请参阅以下主题: