Недавно я использую AWS S3 bucket для обслуживания статических файлов для моего проекта Django.
Вот мои настройки:
AWS_ACCESS_KEY_ID = config('AWS_ACCESS_KEY_ID') #
AWS_SECRET_ACCESS_KEY = config('AWS_SECRET_ACCESS_KEY') #
AWS_STORAGE_BUCKET_NAME = 'bucket-name'
AWS_STATIC_LOCATION = 'static'
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
AWS_LOCATION = 'static'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
STATIC_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
После создания корзины я вижу этипараметры по умолчанию True
![image](https://screenshotscdn.firefoxusercontent.com/images/da90dd17-3e87-4839-881b-3da5f4bee38d.png)
Но когда я пытаюсь получить доступ к моим статическим файлам с моего сайта www.my-site.com или локально 127.0.0.0.1: 8000, показывает 403 отказано в разрешении.Что мне не хватает?
Request URL: https://bucket-name.s3.us-east-2.amazonaws.com/static/file-name.js
Request method: GET
Remote address: 52.0.0.0:443
Status code: 403
После некоторых поисков я попытался определить CORS, например:
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>