Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import hashlib
- from django.core.files.storage import FileSystemStorage
- import os
- def md5sum(file):
- """Calculate the md5 checksum of a file-like object without reading its
- whole content in memory.
- >>> from StringIO import StringIO
- >>> md5sum(StringIO('file content to hash'))
- '784406af91dd5a54fbb9c84c2236595a'
- """
- m = hashlib.md5()
- while 1:
- d = file.read(8096)
- if not d:
- break
- m.update(d)
- return m.hexdigest()
- class PoolStorage(FileSystemStorage):
- """
- Saves file in file pool ;)
- """
- def _save(self, name, content):
- oname = name.split('/')
- key = md5sum(content)
- name = os.path.join(oname[0], key[0:2], oname[1])
- return super(PoolStorage, self)._save(name, content)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement