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

lam*_*ave 6 amazon-s3 amazon-web-services boto3

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

change_storage_class boto3 中不存在来自 boto。

Boto3 中的等价物是什么?

Fré*_*nri 8

来自亚马逊文档

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

  • x-amz-metadata-directive 设置 COPY
  • x-amz-storage-class设置为STANDARD, STANDARD_IA, 或REDUCED_REDUNDANCY

就 boto3复制代码而言,这看起来像

import boto3

s3 = boto3.client('s3')

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

s3.copy(
  copy_source, 'mybucket', 'mykey',
  ExtraArgs = {
    'StorageClass': 'STANDARD_IA',
    'MetadataDirective': 'COPY'
  }
)
Run Code Online (Sandbox Code Playgroud)

  • @VarunSingh 是的,“复制”方法是一种托管传输。如果文件大小超过 5GB,则如有必要,它将在多个线程中使用分段副本。 (4认同)
  • @JohnBissonette 我知道这是很久以前的事了,但感谢您的澄清。我会尝试一下。 (3认同)