В Amazon S3 нет команды перемещения. Вместо этого вам необходимо:
- Использовать
copy_object()
для копирования объекта в новый Key
(который включает полный путь к объекту) - Затем
delete_object()
на старом объекте
Пункт назначения для копии может быть тем же или другим.
Папки на самом деле не существуют, поэтому вы можете скопировать объект в любой путь без предварительного создания папок.
Если вам не нужно использовать boto3, более простым способом является использование интерфейса командной строки AWS (CLI) :
aws s3 mv s3://bucket1/foo/object.txt s3://bucket2/bar/object.txt
Вы даже можете перемещать целые «папки»:
aws s3 mv s3://bucket1/foo s3://bucket2/ --recursive