我需要使用s3cmd将s3对象的存储类从STANDARD类更改为STANDARD_IA。任何人都可以帮我完成这项任务。提前谢谢。
答案 0 :(得分:1)
使用s3cmd:
s3cmd cp s3://BUCKET/KEY s3://BUCKET/KEY --storage-class=STANDARD_IA
使用AWS CLI:
aws s3 cp s3://BUCKET/KEY s3://BUCKET/KEY --storage-class STANDARD_IA
答案 1 :(得分:1)
我用过
import boto3
client = boto3.client('s3')
s3 = boto3.resource('s3')
bucket_name = 'foobar'
list_objects_response = client.list_objects(Bucket=bucket_name)
last_key = 'f'
for f in list_objects_response['Contents']:
last_key = f['Key']
if f['StorageClass'] != 'STANDARD_IA':
object = s3.Object(bucket_name, f['Key'])
object.put(StorageClass='STANDARD_IA')
while list_objects_response['IsTruncated']:
list_objects_response = client.list_objects(Bucket=bucket_name, Marker=last_key)
for f in list_objects_response['Contents']:
last_key = f['Key']
if f['StorageClass'] != 'STANDARD_IA':
object = s3.Object(bucket_name, f['Key'])
object.put(StorageClass='STANDARD_IA')
我认为使用Mark B的答案中的cp命令会产生对象/文件数据传输费用,并且由于文件数据传输而变慢。
答案 2 :(得分:1)
如果要更改存储桶中所有对象的存储类别,请使用:
aws s3 cp s3://<bucket-name>/ s3://<bucket-name>/ --recursive --storage-class <storage_class>