Плохой дайджест Django Storages Boto

Я использую хранилище файлов S3 через хранилище django-storerages boto на Python 3. Когда я пытаюсь загрузить файл, я получаю эту ошибку:

boto.exception.S3ResponseError: S3ResponseError: 400 Bad Request
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>BadDigest</Code>
<Message>The Content-MD5 you specified did not match what we received.</Message>
...

Файл, который я пытаюсь сохранить, - это файл, загружаемый с запросами. Суть этого:

import requests
from django.core.files.base import ContentFile

response = requests.get("http://example.com/some_file.pdf")
document_contents = ContentFile(response.text)
my_model.save("filename", document_contents)

Что я делаю неправильно?


person Zags    schedule 05.08.2016    source источник


Ответы (2)



У меня была аналогичная проблема.

Я перешел на boto3, а механизм хранения - на.

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

Наконец, мне также пришлось преобразовать контент в двоичный, используя .encode ('utf-8')

my_model.save("filename", document_contents.encode('uft-8'))
person mithuntnt    schedule 23.11.2016