Я использую django-storages
с s3boto
как бэкэнд.Как вы устанавливаете «Content-Type» при сохранении на S3 с помощью django-хранилищ с бэкэндом S3boto?
У меня есть одно ведро с двумя папками - одно для static
и одно для media
. Я достигаю этого, используя django-s3-folder-storage
.
Как и сохранение на S3 с использованием модели, я также хочу реализовать функцию resize-and-cache для сохранения файлов на S3. Для этого я напрямую взаимодействую с ведром S3. Код работает, но Content-Type
не установлен на S3.
в IPython:
In [2]: from s3_folder_storage.s3 import DefaultStorage
In [3]: s3media = DefaultStorage()
In [4]: s3media
Out[4]: <s3_folder_storage.s3.DefaultStorage at 0x4788780>
Test мы доступ правильное ведро - storage_test
это один я создал ранее:
In [5]: s3media.exists('storage_test')
Out[5]: True
In [6]: s3media.open("test.txt", "w")
Out[6]: <S3BotoStorageFile: test.txt>
In [7]: test = s3media.open("test.txt", "w")
In [8]: test
Out[8]: <S3BotoStorageFile: test.txt>
In [9]: test.key.content_type = "text/plain"
In [10]: test.write("...")
In [11]: test.close()
In [12]: test = s3media.open("test.txt", "w")
In [13]: test.key.content_type
Out[13]: 'binary/octet-stream'
Я также попытался вместо In [9]
используя test.key.metadata
и test.key.set_metadata
. Никто из них не делает этого.
Как установить правильный тип содержимого?