如何重命名对象boto3 S3?

Hel*_*lad 5 amazon-s3 boto3

我在S3中大约有1000个对象,这些对象以

abcyearmonthday1
abcyearmonthday2
abcyearmonthday3
...
Run Code Online (Sandbox Code Playgroud)

想要重命名为

abc/year/month/day/1
abc/year/month/day/2
abc/year/month/day/3
Run Code Online (Sandbox Code Playgroud)

我怎样才能通过boto3做到这一点。有更简单的方法吗?

小智 5

Boto3 / S3中所述:使用copy_object重命名对象

您无法在S3中重命名对象,您必须使用新名称复制对象,然后删除旧对象

s3 = boto3.resource('s3')
s3.Object('my_bucket','my_file_new').copy_from(CopySource='my_bucket/my_file_old')
s3.Object('my_bucket','my_file_old').delete()
Run Code Online (Sandbox Code Playgroud)


Din*_*kar 1

没有直接的方法来重命名 S3 对象。需要执行以下两个步骤:

  1. 使用新名称将 S3 对象复制到同一位置。
  2. 然后删除旧对象。