在使用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
希望我已经对此进行了充分的解释,这很有意义
答案 0 :(得分:1)
第一个参数是目标键的名称。
因此,只需使用:
dstBucket.copy_key('targetFolder/' + obj.key, srcBucket.name, obj.key)