Я установил свой проект Django, DNS и ведро на Amazon S3, но python manage.py collectstatic
и, следовательно, файлы, загруженные вручную, не будут работать.Django не будет обслуживать статические файлы от Amazon S3 с пользовательским доменом
AWS S3 Настройки:
Имя Ковш: files.domain.com
Bucket политика:
{
"Id": "Policy1483363850641",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1483363848944",
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::files.domain.com/*",
"Principal": "*"
}
]
}
Настройки DNS:
files.domain.com -> CNAME -> files.domain.com.s3.amazonaws.com
Джанго Настройки:
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = 'XXXXXXXXXXXXXXXXXXXX'
AWS_SECRET_ACCESS_KEY = 'XxXxXXxXXXXXxxxXxxXXXxXxxXXXXXXXXxxxXxxx'
AWS_STORAGE_BUCKET_NAME = 'files.domain.com'
AWS_AUTO_CREATE_BUCKET = False
AWS_QUERYSTRING_AUTH = False
AWS_S3_SECURE_URLS = False
AWS_EXPIRY = 60 * 60 * 24 * 7
AWS_HEADERS = {
'Cache-Control': six.b('max-age=%d, s-maxage=%d, must-revalidate' % (
AWS_EXPIRY, AWS_EXPIRY))
}
MEDIA_URL = 'http://%s/' % AWS_STORAGE_BUCKET_NAME
STATICFILES_STORAGE = DEFAULT_FILE_STORAGE
STATIC_URL = MEDIA_URL
Есть ошибки? –
Извините. Да. ssl.CertificateError: hostname 'files.domain.com.s3.amazonaws.com' не соответствует ни одному из * * .s3.amazonaws.com ',' s3.amazonaws.com ' –
Проблема связана с использованием точек на имя ведра S3 и BOTO. Существует решение, но у меня нет моего компьютера со мной, чтобы дать вам ответ, но надеюсь, что это позволит вам найти ответ – dkarchmer