2015-12-28 4 views
2

У меня есть около 1000 объектов в S3, который назван в честьКак переименовать объекты boto3 S3?

abcyearmonthday1 
abcyearmonthday2 
abcyearmonthday3 
... 

хотят переименовать их в

abc/year/month/day/1 
abc/year/month/day/2 
abc/year/month/day/3 

, как я мог бы сделать это через boto3. Есть ли более простой способ сделать это?

+1

Резервируемой вопрос. Проверь это. http://stackoverflow.com/questions/32501995/boto3-copy-object-s3 – mootmoot

ответ

1

Существует нет прямого способа переименовать объект S3. Ниже необходимо выполнить две операции:

  1. Скопируйте объект S3 в том же месте с новым именем.
  2. Затем удалите старый объект.
0

Как объяснено в Boto3/S3: Renaming an object using 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()