Хранилища Django: Нужен аутентифицированный способ чтения статических файлов из облачного хранилища google

Я пытаюсь читать статические файлы из хранилища GCP, используя ключ учетной записи службы. Проблема в том, что в то время как большинство запросов аутентифицированы django-storages, некоторые запросы являются публичными.

Консоль разработчика: Вкладка Networks

И из-за этого я получаю сломанный Django admin UI.

Сломанный пользовательский интерфейс администратора Django

Вот мои настройки статического файла в settings.py file.

STATIC_URL = "/static/"
if DEPLOYED_URL:
    DEFAULT_FILE_STORAGE = "storages.backends.gcloud.GoogleCloudStorage"
    STATICFILES_STORAGE = "storages.backends.gcloud.GoogleCloudStorage"
    GS_BUCKET_NAME = env("GS_BUCKET_NAME")
    GS_CREDENTIALS = service_account.Credentials.from_service_account_info(
        json.loads(get_secret(PROJECT_NAME, "service_account_json"))
    )
    GS_DEFAULT_ACL = "projectPrivate"

Мои ограничения заключаются в том, что у меня есть Fine-grained: Object-level ACLs enabled ведро, к которому нельзя предоставлять публичный доступ.

PS: Поскольку есть ограничения на проект, я не могу использовать публичный bucket. Альтернативные способы, кроме использования пакета django-storages, также приветствуются. Единственное условие - чтение должно быть аутентифицированным и не публичным.

На момент написания статьи это, по-видимому, открытый баг, связанный с django-storages, но на AWS. Но при дальнейшем рассмотрении аналогичная вещь происходит и на GCP.

Я уже развернул свое приложение с помощью whitenoise для преодоления этой ошибки и разместил свое приложение на GCP cloud run.

Вернуться на верх