将文件从S3存储桶传输到另一个保持文件夹结构-Python Boto

时间:2019-01-22 20:38:09

标签: python amazon-web-services amazon-s3 boto

在使用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 :(得分:1)

第一个参数是目标键的名称。

因此,只需使用:

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