Можно ли скопировать все файлы из одной корзины S3 в другую с помощью s3cmd?

Я очень доволен 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

Синхронизация почти так же проста, как копирование. Для ключей доступны поля для ETag, размера и последнего изменения.

Возможно, это поможет и другим.

75
задан Jan Deinhard 7 March 2011 в 13:55
поделиться