如何通过生命周期配置使用boto3更改S3存储桶文件夹中所有对象的存储类? [关闭]

问题描述 投票:0回答:1

任何人都可以使用boto3共享更改S3存储桶文件夹中所有对象的存储类的代码段。

python amazon-web-services amazon-s3 boto3
1个回答
1
投票

S3 Storage Class documentation中所述,您可以在S3上放置对象时定义存储类,也可以通过对现有对象进行复制来定义存储类。

存储类在API调用的x-amz-storage-class HTTP头中定义。

使用Boto3,您可以使用以下代码在对象创建时指定存储类:

import boto3

s3 = boto3.resource('s3')
object = s3.Object('bucket_name','key')

object.put(StorageClass='STANDARD')
# accepted values are 'STANDARD' |'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'

使用Boto3,您可以通过复制以下代码来更改存储类:

import boto3

s3 = boto3.resource('s3')
object = s3.Object('new_bucket_name','newkey')
object.copy_from(CopySource = { Bucket: 'old_bucket_name', 'Key': 'old_key'}, StorageClass='STANDARD')

请参阅put()获取新对象,并使用copy_from()复制对象并更改其存储类。

© www.soinside.com 2019 - 2024. All rights reserved.