def get(self, from_path, to_path=''): if not to_path: to_path = os.path.basename(from_path) to_file = open(os.path.expanduser(to_path), "wb") f, metadata = self.api_client.get_file_and_metadata(from_path) print('Downloading %s => %s: %s' % (from_path, to_path, metadata['size'].encode('utf-8'))) total_size = metadata.get('bytes', 0) cur_size = 0 bufsize = 4096 data = f.read(bufsize) while data != '': cur_size += len(data) to_file.write(data) file_callback(cur_size, total_size) data = f.read(bufsize) sys.stdout.write('\n') # to keep process bar to_file.close() return total_size
def get(self, from_path, to_path=''): if not to_path: to_path = os.path.basename(from_path) to_file = FileCallback(os.path.expanduser(to_path), "wb") rs = self.api_client.download_file(from_path) md = self.api_client.metadata(from_path) total_size = md.get('size', 0) cur_size = 0 bufsize = 4096 print('Downloading %s => %s: %s' % (from_path, to_path, sizeof_fmt(total_size))) data = rs.read(bufsize) while data != '': cur_size += len(data) to_file.write(data) file_callback(cur_size, total_size) data = rs.read(bufsize) sys.stdout.write('\n') # to keep process bar to_file.close() return total_size