Должны ли файлы .js быть публичными при обслуживании файлов django через AWS S3 bucket?
Моя команда django collectstatic отлично загружается в ведро AWS S3, но при попытке доступа к статическим файлам возникает ошибка 403.
Из того, что я увидел в результате поиска, следует, что мой ACL по умолчанию имеет значение "private", и мне нужно изменить настройки, чтобы позволить писателю установить ACL на "public-read". Я попробовал изменить настройки, чтобы установить ACL на 'public-read', и это позволяет collectstatic и веб-сайту работать нормально. Однако, это также позволяет любому человеку проверять элемент и просматривать мои статические файлы
Является ли общепринятой практикой публичный просмотр статических файлов? Мне кажется, что это может быть риском для безопасности, если кто-то сможет прочитать мои js файлы. Если я что-то упускаю в своей конфигурации django, пожалуйста, дайте мне знать.
Мой файл настроек:
USE_S3 = os.getenv('USE_S3') == 'TRUE'
if USE_S3:
# aws settings
AWS_ACCESS_KEY_ID = os.getenv('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.getenv('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.getenv('AWS_STORAGE_BUCKET_NAME')
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'
else:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'mediafiles')