我对s3cmd很满意,但有一个问题:如何将所有文件从一个S3存储桶复制到另一个?它甚至可能吗?
编辑:我发现了一种使用Python与boto在存储桶之间复制文件的方法:
from boto.s3.connection import S3Connection
def copyBucket(srcBucketName, dstBucketName, maxKeys = 100):
conn = S3Connection(awsAccessKey, awsSecretKey)
srcBucket = conn.get_bucket(srcBucketName);
dstBucket = conn.get_bucket(dstBucketName);
resultMarker = ''
while True:
keys = srcBucket.get_all_keys(max_keys = maxKeys, marker = resultMarker)
for k in keys:
print 'Copying ' + k.key + ' from ' + srcBucketName + ' to ' + dstBucketName
t0 = time.clock()
dstBucket.copy_key(k.key, srcBucketName, k.key)
print time.clock() - t0, ' seconds'
if len(keys) < maxKeys:
print 'Done'
break
resultMarker = keys[maxKeys - 1].key …Run Code Online (Sandbox Code Playgroud) 我正在为拥有2个独立AWS账户的客户做一些工作.我们需要将其中一个S3帐户的存储桶中的所有文件移动到第二个帐户的新存储桶中.
我们认为s3cmd允许这样,使用以下格式:
s3cmd cp s3://bucket1 s3://bucket2 --recursive
Run Code Online (Sandbox Code Playgroud)
但是,这只允许我使用一个帐户的密钥,而我无法指定第二个帐户的帐户.
有没有办法在不下载文件并将其再次上传到第二个帐户的情况下执行此操作?