From 9132520d0197845a85c58ec010a5fa48641e5c80 Mon Sep 17 00:00:00 2001 From: toto <> Date: Fri, 29 Oct 2021 12:16:53 +0200 Subject: [PATCH] fix hash --- SELECT.sql | 2 +- backup.py | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/SELECT.sql b/SELECT.sql index 1dfbb86..313116c 100644 --- a/SELECT.sql +++ b/SELECT.sql @@ -1,3 +1,3 @@ -SELECT name, path, size, m_date, c_date, crypt.id, compress_mode +SELECT name, path, size, m_date, c_date, crypt.id, compress_mode, sha1sum FROM files INNER JOIN crypt ON files.crypt_id = crypt.id \ No newline at end of file diff --git a/backup.py b/backup.py index fb5de36..f49129e 100644 --- a/backup.py +++ b/backup.py @@ -65,7 +65,7 @@ class Backup: if crypt_id is not None: print("Proceed", uri, ' ==> ', crypt_id) enc = crypt(compress(uri), self.key) - self.bdd.set_crypt_attr(crypt_id, compress_mode="gz", sha1sum=hashlib.sha1(enc.read()).hexdigest()) + self.bdd.set_crypt_attr(crypt_id, compress_mode="gz", sha1sum=get_hash(enc)) print(" Size : ", get_size(enc)) upload_file(enc, self.save_mode, file_name=os.path.join(self.save_location, str(crypt_id).zfill(ZFILL)), bucket=self.buk) else: @@ -82,7 +82,7 @@ class Backup: print("Proceed", path, ":", [file['name'] for file in files], ' ==> ', crypt_id) tarball = tar([file['path'] for file in files]) enc = crypt(compress(tarball), self.key) - self.bdd.set_crypt_attr(crypt_id, compress_mode="tar.gz", sha1sum=hashlib.sha1(enc.read()).hexdigest()) + self.bdd.set_crypt_attr(crypt_id, compress_mode="tar.gz", sha1sum=get_hash(enc)) print(" Size : ", get_size(enc)) upload_file(enc, self.save_mode, file_name=os.path.join(self.save_location, str(crypt_id).zfill(ZFILL)), bucket=self.buk) @@ -125,6 +125,16 @@ def get_size(in_file): return human_size(filesize, decimal_places=1, unit='si') +def get_hash(infile): + if type(infile) is str: + file = open(infile, 'rb') + elif type(infile) is tempfile.SpooledTemporaryFile: + infile.seek(0) + file = infile + + return hashlib.sha1(file.read()).hexdigest() + + def tar(files): tarball = tempfile.SpooledTemporaryFile() with tarfile.open(fileobj=tarball, mode='w') as zipfile: