From 918989db5af6fcc31a355e4af620bf63c086d589 Mon Sep 17 00:00:00 2001 From: jemygraw Date: Thu, 23 Nov 2017 13:30:06 +0800 Subject: [PATCH] fix the file like object upload problem mentioned in issue 281 --- qiniu/services/storage/uploader.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/qiniu/services/storage/uploader.py b/qiniu/services/storage/uploader.py index 1340d06f..4e1a2157 100644 --- a/qiniu/services/storage/uploader.py +++ b/qiniu/services/storage/uploader.py @@ -27,8 +27,19 @@ def put_data( 一个dict变量,类似 {"hash": "", "key": ""} 一个ResponseInfo对象 """ - crc = crc32(data) - return _form_put(up_token, key, data, params, mime_type, crc, progress_handler, fname) + final_data = '' + if hasattr(data, 'read'): + while True: + tmp_data = data.read(config._BLOCK_SIZE) + if len(tmp_data) == 0: + break + else: + final_data += tmp_data + else: + final_data = data + + crc = crc32(final_data) + return _form_put(up_token, key, final_data, params, mime_type, crc, progress_handler, fname) def put_file(up_token, key, file_path, params=None,