def run_backup(self, args):
"""Run the backup operation."""
chunksize = args.chunksize
encodefunc = base64.b85encode #FIXME: add arg
infile = open(args.infile, "rb")
infile_size = os.path.getsize(infile.name)
outfile = args.outfile
inputhash = hashlib.sha256()
framedata = self.frame_data_func(args)
qr_count = infile_size / chunksize + 1
self.logger.info('Original file size: %dKiB', infile_size / 1024)
self.logger.info('Total number of QR codes: %d', qr_count)
exporter = self.setup_exporter(args, qr_count)
qr_number = 0
sizesofar = 0
while True:
bindata = infile.read(chunksize)
if not bindata: break
frame = framedata(bindata, qr_count, sizesofar)
inputhash.update(bindata)
sizesofar += len(bindata)
qr_number += 1
self.logger.info('Exporting QR %d of %d', qr_number, qr_count)
encdata = encodefunc(frame).decode()
qr = pyqrcode.create(encdata)
exporter.add_qr(qr)
exporter.finish(inputhash)
self.logger.info('Finished exporting')
if args.sha256:
print('SHA-256 of input: %s' % inputhash.hexdigest())
评论列表
文章目录