В настоящее время существует PR для django-хранилищ, который вычисляет хеш MD5 как данные, полученные приложением .
В итоге, это меняет S3Boto3StorageFile
, так что для init и новой части
self._file_md5 = hashlib.md5()
и затем при получении content_bytes
self._file_md5.update(content_bytes)
, а затем при загрузке каждой детали параметр ContentMD5
передается в функцию загрузки детали
ContentMD5=base64.b64encode(self._file_md5.digest()).decode('utf-8')