Должны ли файлы .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')
Вернуться на верх