diff --git a/core/fs.py b/core/fs.py index 7fbe8bc1..5c3dc6ff 100644 --- a/core/fs.py +++ b/core/fs.py @@ -102,8 +102,12 @@ class File(object): elif field == 'md5': try: fp = io.open(self.path, 'rb') - filedata = fp.read() - md5 = hashlib.md5(filedata) + md5 = hashlib.md5() + CHUNK_SIZE = 8192 + filedata = fp.read(CHUNK_SIZE) + while filedata: + md5.update(filedata) + filedata = fp.read(CHUNK_SIZE) self.md5 = md5.digest() fp.close() except Exception: