Tôi đang sử dụng django-storages
với s3boto
làm phụ trợ.Làm thế nào để bạn đặt "Content-Type" khi lưu vào S3 bằng cách sử dụng django-storages với phần phụ trợ S3boto?
Tôi có một nhóm với hai thư mục - một cho static
và một cho media
. Tôi đạt được điều này bằng cách sử dụng django-s3-folder-storage
.
Cũng như lưu vào S3 bằng cách sử dụng một mô hình, tôi cũng muốn thực hiện chức năng chỉnh sửa kích thước và lưu trữ hình ảnh để lưu các tệp vào S3. Để làm điều này, tôi tương tác trực tiếp với thùng S3 của tôi. Mã hoạt động, nhưng Content-Type
không được đặt trên S3.
trong 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>
thử nghiệm chúng tôi truy cập vào xô đúng - storage_test
là một trong tôi đã tạo trước đó:
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'
Tôi cũng đã cố gắng thay vì In [9]
sử dụng test.key.metadata
và test.key.set_metadata
. Không ai trong số họ làm điều đó.
Làm cách nào để đặt đúng Loại nội dung?