Boto3 / S3 / Django:在计算文件哈希时避免阻塞事件循环

时间:2019-02-24 09:18:44

标签: django amazon-s3 boto3 gunicorn gevent

从gunicorn + gevent工作者中,通过enter image description here将文件(分段)上传到S3,如何确定在计算文件/部分内容的哈希值时,事件循环没有被阻塞? / p>

django-storages中,似乎并没有传递md5(/另一个哈希值)的范围,在source for django-storages中似乎没有传递范围。在计算哈希值时产生事件循环。

1 个答案:

答案 0 :(得分:0)

现在有一个PR for django-storages that calculates the MD5 hash as data received by the application

总而言之,这会更改S3Boto3StorageFile,因此在初始化和新部分上都会

self._file_md5 = hashlib.md5()

然后收到content_bytes

self._file_md5.update(content_bytes)

然后上传每个部件时,ContentMD5参数将传递到部件上传功能

ContentMD5=base64.b64encode(self._file_md5.digest()).decode('utf-8')