Tony Landis home

Migration from Amazon S3 to Rackspace Cloud Files

I am moving from Amazon S3 and Cloudfront and couldn’t find a migration tool, so threw together this python script.

It will copy the contents of a S3 bucket to to a Rackspace Cloud Files container.

You will need a few libraries first:

easy_install boto
easy_install python_cloudfiles

Here is the migration script. Feel free to clone .

#!/usr/bin/python

"""

S3 to Rackspace Cloud Files Migration

This script will copy the contents of a S3
bucket to to a Rackspace Cloud Files container.

Depends on the boto and python_cloudfiles python libraries.

Author:                Tony Landis 
Website:       www.tonylandis.com
License:       Do whatever you want with this code
Usage:         Just define the S3_* and CF_* settings below before running.
                       If you have a s3 bucket name with characters that are not
                       valid for a file name on your system, you will need to change
                       the tmp_file and mrk_file as well to avoid issues.


"""

import cloudfiles
from boto.s3.connection import S3Connection
from boto.s3.key import Key

# the s3 api key, secret, and bucket to copy from
S3_KEY                   = ''
S3_SECRET                = ''
S3_BUCKET                = ''

# the rackspakce cloud files user, api, and container to copy to
CF_USER                  = ''
CF_API_KEY               = ''
CF_CONTAINER     = ''

# connect to s3
s3_conn                  = S3Connection(S3_KEY, S3_SECRET, is_secure=False)
s3_bucket                = s3_conn.create_bucket(S3_BUCKET)
# connect to cf
cf_conn                  = cloudfiles.get_connection(CF_USER, CF_API_KEY, serviceNet=True)
cf_container     = cf_conn.get_container(CF_CONTAINER)
# setup temp files
tmp_file = '/tmp/%s' % S3_BUCKET
mrk_file = '/tmp/key_%s' % S3_BUCKET
#see if we have a file with the key marker for s3 get_all_keys()
key_marker=''
try:
        fp = open(mrk_file, 'r')
        lines = fp.readlines()
        fp.close()
        if lines:
                key_marker = lines[-1]
except Exception: 
        pass

def handle(name):
        "try to do the copy"
        try:
                #get tmp file
                key = Key(s3_bucket, name)
                #copy to tmp
                fp = open(tmp_file, "w")
                key.get_file(fp)
                fp.close()
                #copy to cf
                fp = open(tmp_file, "r")
                #create the object to copy to
                o = cf_container.create_object(name)
                o.write(fp)
                #cleanup
                fp.close()
                return True
        except Exception:
                print ' retrying'
                return False

i = 0
rs = True
while rs:
        "get all the keys"
        rs = s3_bucket.get_all_keys(marker=key_marker)
        for s3_key in rs:
                name = s3_key.name
                print "%i %s" % (i, name)
                done, tries = False, 0
                while done == False:
                        #keep retrying, sometimes things time out
                        done = handle(name)
                #reset key marker, save last processed
                key_marker = name
                fp = open(mrk_file, 'w')
                fp.write(key_marker)
                fp.close()
                i+=1

print "All done!"
купить диплом техникума купить аттестат за 11 класс купить диплом техникума купить диплом университета купить диплом http://diplomy-originaly.com купить диплом фармацевта где купить диплом купить диплом нового образца купить диплом колледжа купить диплом о среднем образовании http://diplomsagroups.com купить диплом фармацевта купить диплом фармацевта https://gosznac-diploma.com/ купить диплом специалиста купить диплом фармацевта купить диплом с регистрацией купить диплом с занесением в реестр купить диплом в москве где купить диплом купить диплом техникума с занесением в реестр купить диплом о высшем образовании https://russian-diplom.com купить диплом с занесением в реестр реально купить диплом специалиста http://rudiplomirovanie.com купить диплом с занесен ем в реестр купить диплом института http://aurus-diploms.com купить диплом с реестром цена купить аттестат за 11 класс https://premiums-diploms.com купить диплом с занесением в реестр реально купить диплом автомеханика http://russdiplomiki.com купить диплом с реестром купить диплом автомеханика https://diplomansy.com купить диплом без реестра купить диплом о среднем образовании https://diploms-asx.com купить диплом с занесением в реестр цена купить диплом в москве https://diploms-asx.com купить диплом с занесением в реестр купить диплом фармацевта https://eonline-diploms.com купить настоящий диплом реестр купить диплом института купить диплом института купить диплом с реестром купить дипломы о высшем http://diplomrussian.com купить диплом с проводкой купить диплом университета купить диплом института купить диплом с занесением в реестр купить диплом о среднем специальном купить диплом в москве купить диплом техникума с занесением в реестр купить диплом института https://russiany-diploman.com/ купить диплом с занесением в реестр цена купить диплом кандидата наук купить диплом университета купить диплом техникума с занесением в реестр купить диплом врача https://rudiplomisty24.com/ купить диплом с реестром цена москва купить диплом фармацевта https://land-diplom.com/ купить диплом пту с занесением в реестр купить свидетельство о браке купить аттестат купить диплом с занесением в реестр купить аттестат за 11 класс https://diplomsy-landsy24.ru/ купить диплом высшем образовании занесением реестр купить диплом врача купить аттестат за 9 класс куплю диплом техникума реестр купить диплом института купить диплом о высшем образовании купить диплом с реестром цена купить диплом фармацевта купить диплом фармацевта купить медицинский диплом с занесением в реестр купить диплом о высшем образовании купить свидетельство о браке купить диплом с реестром цена купить диплом о высшем образовании http://aurus-diploms.com/kupit-diplom-farmacevta.html купить диплом с занесен ем в реестр купить диплом о среднем специальном купить диплом вуза с реестром купить диплом колледжа с занесением в реестр купить диплом автомеханика http://diploms-service.com/diplomy-po-gorodam/ufa купить диплом с реестром купить диплом о среднем образовании https://diploms-asx.com/ купить диплом техникума с занесением в реестр