Перенос файлов из S3 Bucket в другую структуру хранения папок - python boto - PullRequest
0 голосов
/ 22 января 2019

Нашел много вопросов, связанных с этим, с решениями, использующими boto3, однако я нахожусь в положении, когда мне нужно использовать boto, работающий на Python 2.38.

Теперь я могу успешно передавать свои файлы в их папки (это не настоящие папки, я знаю, что у S3 такой концепции нет), но я хочу, чтобы они были сохранены в определенную папку в моей папке назначения

from boto.s3.connection import S3Connection


def transfer_files():
  conn = S3Connection()
  srcBucket = conn.get_bucket("source_bucket")
  dstBucket = conn.get_bucket(bucket_name="destination_bucket")
  objectlist = srcbucket.list()
  for obj in objectlist:
      dstBucket.copy_key(obj.key, srcBucket.name, obj.key)

Мой srcBucket будет выглядеть как folder/subFolder/anotherSubFolder/file.txt, который при передаче попадет в dstBucket примерно так destination_bucket/folder/subFolder/anotherSubFolder/file.txt

Я бы хотел, чтобы это закончилось в destination_bucket/targetFolder, поэтому финалструктура каталогов будет выглядеть так:

destination_bucket/targetFolder/folder/subFolder/anotherSubFolder/file.txt

Надеюсь, я объяснил это достаточно хорошо, и это имеет смысл

1 Ответ

0 голосов
/ 23 января 2019

Первый параметр - это имя клавиши назначения.

Поэтому просто используйте:

dstBucket.copy_key('targetFolder/' + obj.key, srcBucket.name, obj.key)
...