Итак, я создал приложение django и развернул его с помощью Heroku. Файлы Stati c (а также носители) обслуживаются корзиной GCS.
В настоящее время у меня возникает проблема при загрузке всех моих файлов stati c. Примечательно, что файлы png не загружаются, но все остальное есть. Запросы файла png возвращают ошибку 403, но остальные файлы (css, js, et c.) Загружаются нормально. Кроме того, изображения jpg, загруженные с носителя, возвращаются без ошибок.
Я должен предположить, что это проблема GCS, но я не совсем уверен в этом. Я перепробовал все, включая назначение разрешений моему сервисному агенту, создание другого сервисного агента и воссоздание другого сегмента с теми же данными.
У меня не было этой проблемы при использовании сегментов GCS с приложениями, запущенными на Google App Engine или GKE.
Любая точка в правильном направлении была бы отличной.
Это соответствующая часть моего файла настроек. Обратите внимание, что я специально поставил вызов django_heroku.settings(locals())
над этим блоком кода, поскольку он переопределяет эти настройки.
DEBUG = False
django_heroku.settings(locals())
DEFAULT_FILE_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'
STATICFILES_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'
GS_BUCKET_NAME = 'hello-world'
GCS_URL = 'https://storage.googleapis.com/'
STATIC_URL = '{}/{}/static/'.format(GCS_URL, GS_BUCKET_NAME)
MEDIA_URL = '{}/{}/media/'.format(GCS_URL, GS_BUCKET_NAME)
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
UPLOAD_ROOT = 'media/uploads/'