将文件从 S3 Bucket 传输到另一个保留文件夹结构 - python boto
Transfer files from S3 Bucket to another keeping folder structure - python 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
,当转移时会像这样 destination_bucket/folder/subFolder/anotherSubFolder/file.txt
降落在 dstBucket
我希望它在 destination_bucket/targetFolder
中结束,所以最终的目录结构看起来像
destination_bucket/targetFolder/folder/subFolder/anotherSubFolder/file.txt
希望我已经解释得足够好并且它有道理
第一个参数是目标键的名称。
因此,只需使用:
dstBucket.copy_key('targetFolder/' + obj.key, srcBucket.name, obj.key)
使用 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
,当转移时会像这样 destination_bucket/folder/subFolder/anotherSubFolder/file.txt
dstBucket
我希望它在 destination_bucket/targetFolder
中结束,所以最终的目录结构看起来像
destination_bucket/targetFolder/folder/subFolder/anotherSubFolder/file.txt
希望我已经解释得足够好并且它有道理
第一个参数是目标键的名称。
因此,只需使用:
dstBucket.copy_key('targetFolder/' + obj.key, srcBucket.name, obj.key)