如何通过boto3更改现有密钥的存储类

时间:2016-09-03 17:58:34

标签: amazon-web-services amazon-s3 boto3

使用AWS S3服务时,我需要将现有密钥的存储类别从STANDARD更改为STANDARD_IA。

来自boto的

change_storage_class并不存在于boto3中。

Boto3中的等价物是什么?

1 个答案:

答案 0 :(得分:4)

来自amazon doc

  

您还可以通过将已存储在Amazon S3中的对象的存储类复制到同一存储桶中的相同键名来更改该存储类。为此,您在PUT对象复制请求中使用以下请求标头:

     
      
  • x-amz-metadata-directive设置为COPY
  •   
  • x-amz-storage-class设置为STANDARDSTANDARD_IAREDUCED_REDUNDANCY
  •   

以boto3 copy code表示,这看起来像

import boto3

s3 = boto3.client('s3')

copy_source = {
    'Bucket': 'mybucket',
    'Key': 'mykey'
}

s3.copy(
  copy_source, 'mybucket', 'mykey',
  ExtraArgs = {
    'StorageClass': 'STANDARD_IA',
    'MetadataDirective': 'COPY'
  }
)