Переместить файлы из одной корзины в папку внутри другой корзины - PullRequest
0 голосов
/ 26 февраля 2020

Я новичок в boto3 и могу перемещать файлы из одного сегмента в другой, но мне нужно переместить файлы из папки в другом сегменте

Ответы [ 2 ]

2 голосов
/ 26 февраля 2020

В 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
1 голос
/ 26 февраля 2020

С boto3 все довольно просто. Как описано в документах :

import boto3
s3 = boto3.resource('s3')
copy_source = {
    'Bucket': 'mybucket',
    'Key': 'mykey'
}
s3.meta.client.copy(copy_source, 'otherbucket', 'otherkey')

И после того, как вы скопируете свой файл из одного сегмента в другой, вы можете удалить его:

obj = s3.Object('bucket_name', 'key')
obj.delete()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...