Django con almacenamiento en la nube de Google

He intentado implementar Google Cloud Storage (carga de archivos multimedia) para mi aplicación Django en Google App Engine usando el paquete django-storages. He seguido todas las especificaciones dadas por el paquete. También configuré las políticas y los roles relevantes para que la cuenta de servicio acceda al depósito de almacenamiento, pero sigo recibiendo el error "la persona que llama anónima no tiene acceso a storage.objects.get to the google cloud storage object ". al intentar ver las imágenes en mi plantilla html.

Solo puedo ver las imágenes en la plantilla cuando incluyo el permiso para todos los usuarios en la configuración del depósito de almacenamiento. ¿Alguien sabe cómo solucionar este problema sin hacer que su depósito sea de acceso público?

Esta es la captura de pantalla de mi configuración para django-storages en el archivo settings.py ingrese la descripción de la imagen aquí

Answer
  1. Por favor, compruebe que sus credenciales son correctas. Si usa gsutil, verifique que las credenciales almacenadas en su archivo .boto sean precisas. Además, confirme que gsutil esté usando el archivo .boto que espera usando el comando gsutil version -l y verificando la entrada de la ruta de configuración.

  2. Y si está usando las credenciales correctas, ¿sus solicitudes se enrutan a través de un proxy, usando HTTP (en lugar de HTTPS)? Si es así, verifique si su proxy está configurado para eliminar el encabezado de Autorización de dichas solicitudes. Si es así, asegúrese de estar utilizando HTTPS en lugar de HTTP para sus solicitudes.

    Puede consultar el documento para la autenticación de almacenamiento

También puede validar con los siguientes puntos adicionalmente:

  1. En la mayoría de los casos, las cuentas de servicio predeterminadas no son suficientes para leer/escribir y firmar archivos en GCS, por lo que deberá crear una cuenta de servicio dedicada.

  2. Crea una cuenta de servicio.

  3. Asegúrese de que su cuenta de servicio tenga acceso al depósito y los permisos adecuados.

  4. Asegúrese de que esta cuenta de servicio esté asociada al tipo de computación que se utiliza (Google Compute Engine (GCE), Google Kubernetes Engine (GKE), Google Cloud Run (GCR), etc.)

Para casos de uso de desarrollo u otras instancias fuera de la infraestructura de Google:

-Cree la clave y descargue el archivo abc.json.
-Asegúrese de que la clave esté montada/disponible para su aplicación Django en ejecución.
-Establezca una variable de entorno de GOOGLE_APPLICATION_CREDENTIALS en la
ruta del archivo json.

Alternativamente, puede usar la configuración GS_CREDENTIALS como se describe en el documento

django-almacena
permisos de IAM