From 4813ad737f132765b395506b710e3b03e792a423 Mon Sep 17 00:00:00 2001 From: jemygraw Date: Fri, 3 Nov 2017 16:33:22 +0800 Subject: [PATCH] fix the resume uploader recorder key error under python2 when using chinese character --- .../storage/upload_progress_recorder.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/qiniu/services/storage/upload_progress_recorder.py b/qiniu/services/storage/upload_progress_recorder.py index 697b2da7..cac64529 100644 --- a/qiniu/services/storage/upload_progress_recorder.py +++ b/qiniu/services/storage/upload_progress_recorder.py @@ -4,6 +4,7 @@ import json import os import tempfile +from qiniu.compat import is_py2, is_py3 class UploadProgressRecorder(object): @@ -27,8 +28,11 @@ def __init__(self, record_folder=tempfile.gettempdir()): def get_upload_record(self, file_name, key): record_key = '{0}/{1}'.format(key, file_name) + if is_py2: + record_file_name = hashlib.md5(record_key).hexdigest() + else: + record_file_name = hashlib.md5(record_key.encode('utf-8')).hexdigest() - record_file_name = hashlib.md5(record_key.encode('utf-8')).hexdigest() upload_record_file_path = os.path.join(self.record_folder, record_file_name) if not os.path.isfile(upload_record_file_path): return None @@ -38,13 +42,21 @@ def get_upload_record(self, file_name, key): def set_upload_record(self, file_name, key, data): record_key = '{0}/{1}'.format(key, file_name) - record_file_name = hashlib.md5(record_key.encode('utf-8')).hexdigest() + if is_py2: + record_file_name = hashlib.md5(record_key).hexdigest() + else: + record_file_name = hashlib.md5(record_key.encode('utf-8')).hexdigest() + upload_record_file_path = os.path.join(self.record_folder, record_file_name) with open(upload_record_file_path, 'w') as f: json.dump(data, f) def delete_upload_record(self, file_name, key): record_key = '{0}/{1}'.format(key, file_name) - record_file_name = hashlib.md5(record_key.encode('utf-8')).hexdigest() + if is_py2: + record_file_name = hashlib.md5(record_key).hexdigest() + else: + record_file_name = hashlib.md5(record_key.encode('utf-8')).hexdigest() + upload_record_file_path = os.path.join(self.record_folder, record_file_name) os.remove(upload_record_file_path)