- objects = rp.fetchall()
- for username, headerid, folderid, filename, deleted, filepath, mimetype in objects:
- path = self.get_path(folderid)[1:]
- container = 'pithos' if not deleted else 'trash'
- object = '%s/%s' %(path, filename)
- #filepath = '/Users/butters/Downloads/torvalds-linux-0f86267'
- vserial = self.create_object(username, container, object, filepath, mimetype)
- nodeid = self.node.version_get_properties(vserial, keys=('node',))[0]
- self.create_history(username, headerid, nodeid, deleted)
- self.node.version_remove(vserial)
- #self.set_metadata()
- #self.set_public()
- #self.statistics()
- #self.set_permissions()
-
- def handle_deleted(self):
- pass
-
- def upload_dir(self, dir, prefix, user, container):
- for f in os.listdir(dir):
- fullpath = '%s/%s' %(dir, f)
- if os.path.isfile(fullpath):
- type = mimetypes.guess_type(fullpath)[0]
- name = '/'.join(fullpath.split(prefix)[1:])
- print '@', user, container, name, fullpath, type
- self.create_object(user, container, name, fullpath, type)
- else: self.upload_dir(fullpath, prefix, user, container)
-
-class ClientWrapper(object):
- """Wraps client methods used by transfer.upload()
- to ModularBackend methods"""
-
- def __init__(self, backend):
- self.backend = backend
- self.block_size = self.backend.block_size
- self.block_hash = self.backend.hash_algorithm
-
- def set_account(self, account):
- self.account = account
-
- def create_container(self, container, account=None, **meta):
- self.backend.put_container(account, account, container, meta)
-
- def create_directory_marker(self, container, object, account=None):
- md5 = hashlib.md5()
- meta = {'Content-Type':'application/directory',
- 'hash': md5.hexdigest().lower()}
- self.backend.update_object_hashmap(account, account, container, object, 0, [], meta)