# or implied, of GRNET S.A.
import hashlib
+import os
from binascii import hexlify
+from progress.bar import IncrementalBar
def file_read_iterator(fp, size=1024):
while True:
def load(self, fp):
self.size = 0
- for block in file_read_iterator(fp, self.blocksize):
+ file_size = os.fstat(fp.fileno()).st_size
+ nblocks = 1 + (file_size - 1) // self.blocksize
+ bar = IncrementalBar('Computing', max=nblocks)
+ bar.suffix = '%(percent).1f%% - %(eta)ds'
+ for block in bar.iter(file_read_iterator(fp, self.blocksize)):
self.append(self._hash_block(block))
self.size += len(block)
from cStringIO import StringIO
from client import Fault
+from progress.bar import IncrementalBar
def upload(client, path, container, prefix, name=None, mimetype=None):
if '' in missing:
del missing[missing.index(''):]
+ bar = IncrementalBar('Uploading', max=len(missing))
+ bar.suffix = '%(percent).1f%% - %(eta)ds'
with open(path) as fp:
for hash in missing:
offset = hashes.index(unhexlify(hash)) * blocksize
fp.seek(offset)
block = fp.read(blocksize)
client.update_container_data(container, StringIO(block))
+ bar.next()
+ bar.finish()
return client.create_object_by_hashmap(container, object, map, **kwargs)