设置对象的存储类
可以在上传对象时为其指定存储类,如果不指定,Amazon S3 将使用默认的 Amazon S3 Standard 存储类。还可以通过使用 Amazon S3 控制台、AWS SDK 或 AWS Command Line Interface(AWS CLI),将已存储在 Amazon S3 中的对象的存储类更改为任何其它存储类。所有这些方法都使用 Amazon S3 API 操作将请求发送到 Amazon S3。
可以通过向存储桶添加 S3 生命周期配置来指示 Amazon S3 自动更改对象的存储类。有关更多信息,请参阅 管理对象的生命周期。
在设置 S3 复制配置时,可以将已复制对象的存储类设置为其它任何存储类。但是,您无法复制存储在 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类中的对象。有关更多信息,请参阅 复制配置文件元素。
以编程方式设置存储类时,需要提供存储类的值。以下是存储类的控制台名称及其相应 API 值的列表:
S3 Standard –
STANDARD
S3 Standard-IA –
STANDARD_IA
S3 One Zone-IA –
ONEZONE_IA
S3 Express One Zone –
EXPRESS_ONEZONE
S3 Intelligent-Tiering –
INTELLIGENT_TIERING
S3 Glacier Instant Retrieval –
GLACIER_IR
S3 Glacier Flexible Retrieval –
GLACIER
S3 Glacier Deep Archive –
DEEP_ARCHIVE
REDUCED_REDUNDANCY –
REDUCED_REDUNDANCY
设置新对象的存储类
要在上传对象时设置存储类,可以使用以下方法。
要在控制台中上传新对象时设置存储类,请执行以下操作:
登录到 AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 在左侧导航窗格中,选择存储桶。
在 Buckets(存储桶) 列表中,请选择要将文件夹和文件上传到的存储桶的名称。
请选择 Upload(上传)。
在上传窗口中,选择属性。
在“存储类”下,为正在上传的文件选择存储类。
(可选)为您正在上传的文件配置任何其它属性。有关更多信息,请参阅上传对象
在上传窗口中,执行下列操作之一:
将文件和文件夹拖到“上传”窗口。
选择添加文件或添加文件夹,选择要上传的文件或文件夹,然后选择打开。
在页面底部,选择上传。
使用 PutObject
、POST Object
和 CreateMultipartUpload
API 操作创建对象时,可以在对象上指定存储类,并添加 x-amz-storage-class
标头。如果您未添加此标头,Amazon S3 将使用默认的 S3 Standard (STANDARD
) 存储类。
此示例请求使用 PutObject
命令将新对象的存储类设置为 S3 Intelligent-Tiering:
PUT /my-image.jpg HTTP/1.1 Host:
.s3.
amzn-s3-demo-bucket1
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
--key
amzn-s3-demo-bucket1
dir-1/my_images.tar.bz2
--storage-classGLACIER
--bodymy_images.tar.bz2
如果对象大小超过 5 GB,请使用以下命令来设置存储类:
aws s3 cp
large_test_file
s3://
--storage-classamzn-s3-demo-bucket1
GLACIER
更改现有对象的存储类
要在上传对象时设置存储类,可以使用以下方法。
如果对象大小小于 5 GB,则可以使用 Amazon S3 控制台更改对象的存储类。如果更大,我们建议添加 S3 生命周期配置来更改对象的存储类。
要在控制台中更改对象的存储类,请执行以下操作:
登录到AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在左侧导航窗格中,选择存储桶,然后选择通用存储桶选项卡。导航到包含要更改的对象的 Amazon S3 存储桶或文件夹。
-
选中待更改对象的名称左侧的复选框。
-
在操作菜单上,从显示的选项列表中选择编辑存储类。
-
从可用于对象的存储类中进行选择。
-
在其它复制设置下,选择是要复制源设置、请勿指定设置还是指定设置。复制源设置是默认选项。如果您只想复制不带源设置属性的对象,请选择请勿指定设置。选择指定设置以指定存储类、ACL、对象标签、元数据、服务器端加密和其它校验和的设置。
-
选择右下角的保存更改。Amazon S3 将保存更改。
要更改现有对象的存储类,请使用以下方法。
此示例请求使用 PutObject
命令将新对象的存储类设置为 S3 Intelligent-Tiering:
PUT /my-image.jpg HTTP/1.1 Host:
.s3.
amzn-s3-demo-bucket1
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
更新为
存储类中的 DEEP_ARCHIVE
:amzn-s3-demo-bucket1
aws s3api put-object --bucket
--key
amzn-s3-demo-bucket1
dir-1/my_images.tar.bz2
--storage-classDEEP_ARCHIVE
--bodymy_images.tar.bz2
如果对象大小超过 5 GB,请使用以下命令来更改存储类:
aws s3 cp
object_S3_URI
object_S3_URI
--storage-classDEEP_ARCHIVE
将访问策略权限限制到特定存储类
在授予 Amazon S3 操作的访问策略权限时,您可以使用 s3:x-amz-storage-class
条件键限制存储上传的对象时使用的存储类。例如,授予 s3:PutObject
权限时,您可以将对象上传限制到特定的存储类。有关策略示例,请参阅示例:将对象上传限制为具有特定存储类的对象。
有关在策略中使用条件的更多信息和 Amazon S3 条件键的完整列表,请参阅以下主题:
-
《Service Authorization Reference》中的 Actions, resources, and condition keys for Amazon S3。
有关按 S3 资源类型对 S3 API 操作的权限的更多信息,请参阅 Amazon S3 API 操作所需的权限。