Est-il possible de copier tous les fichiers d'un compartiment S3 à l'autre avec s3cmd?

Je suis assez heureux avec s3cmd, mais il y a une question: Comment faire pour copier tous les fichiers d'un compartiment S3 à l'autre? Est-il même possible?

EDIT: j'ai trouvé un moyen de copier des fichiers entre des seaux à l'aide de Python avec 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

La synchronisation est presque aussi simple que la copie. Il y a des champs pour ETag, de la taille et de dernière modification disponibles pour les touches.

Peut-être que cela aide les autres.

  • Hey, pouvez-vous faire de votre modifier répondre à la question et accepter? C'est vraiment une astuce utile!
  • une raison quelconque vous utilisez le 'get_all_keys' par opposition à "liste"?
InformationsquelleAutor Jan Deinhard | 2011-03-04