Tôi đã thiết lập thành công ứng dụng của mình để sử dụng S3 để lưu trữ tất cả các tệp tĩnh và phương tiện. Tuy nhiên, tôi muốn tải lên S3 (hoạt động hiện tại), nhưng phục vụ từ một trường hợp đám mây mà tôi đã thiết lập. Tôi đã thử điều chỉnh cài đặt thành url trên đám mây nhưng nó không hoạt động. Làm thế nào tôi có thể tải lên S3 và phục vụ từ Cloudfront?Sử dụng Cloudfront với Django S3Boto
Cài đặt
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
DEFAULT_FILE_STORAGE = 'app.custom_storages.MediaStorage'
STATICFILES_STORAGE = 'app.custom_storages.StaticStorage'
STATICFILES_LOCATION = 'static'
MEDIAFILES_LOCATION = 'media'
STATIC_URL = "https://s3-eu-west-1.amazonaws.com/app/%s/" % (STATICFILES_LOCATION)
MEDIA_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, MEDIAFILES_LOCATION)
custom_storages.py
from django.conf import settings
from storages.backends.s3boto import S3BotoStorage
class StaticStorage(S3BotoStorage):
location = settings.STATICFILES_LOCATION
class MediaStorage(S3BotoStorage):
location = settings.MEDIAFILES_LOCATION
Bạn có thêm thông tin tại sao nó không hoạt động không? Có thông báo lỗi nào không? –
Điều này đã được trả lời tại đây: http://stackoverflow.com/questions/8688815/django-compressor-how-to-write-to-s3-read-from-cloudfront/8888930#8888930 –
Trong trường hợp nó giúp mọi người, Tôi cũng phải thêm cài đặt 'AWS_DEFAULT_ACL = ''' cho 'collectstatic' để hoạt động và không trả về 403. – Danra