【问题标题】:How to change storage class of existing key via boto3如何通过 boto3 更改现有密钥的存储类别
【发布时间】:2016-09-03 17:58:33
【问题描述】:

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

来自boto的change_storage_class在boto3中不存在。

Boto3 中的等价物是什么?

【问题讨论】:

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


    【解决方案1】:

    来自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'
      }
    )
    

    【讨论】:

    • 即使文件大小超过 5GB 也能正常工作吗?
    • @VarunSingh 是的,copy 方法是托管传输。如果文件大小超过 5GB,则如有必要,它将在多个线程中使用多部分副本。
    • @JohnBissonette 我知道是很久以前的事了,但感谢您的澄清。我会试试这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    • 2015-07-20
    相关资源
    最近更新 更多