origin headers google example control allow firebase cors google-cloud-storage firebase-storage

headers - Firebase Storage y Access-Control-Allow-Origin



google storage cors (3)

De esta publicación en firebase-talk group / list :

La forma más fácil de configurar sus datos para CORS es con la herramienta de línea de comando gsutil . Las instrucciones de instalación para gsutil están disponibles en https://cloud.google.com/storage/docs/gsutil_install . Una vez que haya instalado gsutil y autenticado con él, puede usarlo para configurar CORS.

Por ejemplo, si solo desea permitir descargas de objetos de su dominio personalizado, coloque estos datos en un archivo llamado cors.json (reemplazando "https://example.com" con su dominio):

[ { "origin": ["https://example.com"], "method": ["GET"], "maxAgeSeconds": 3600 } ]

Luego, ejecute este comando (reemplazando "exampleproject.appspot.com" con el nombre de su depósito):

gsutil cors set cors.json gs://exampleproject.appspot.com

y deberías estar listo.

Si necesita una configuración CORS más complicada, consulte los documentos en https://cloud.google.com/storage/docs/cross-origin#Configuring-CORS-on-a-Bucket .

Estoy tratando de descargar archivos de Firebase Storage a través de XMLHttpRequest, pero Access-Control-Allow-Origin no está configurado en el recurso, por lo que no es posible. ¿Hay alguna forma de configurar este encabezado en el servidor de almacenamiento?

(let [xhr (js/XMLHttpRequest.)] (.open xhr "GET" url) (aset xhr "responseType" "arraybuffer") (aset xhr "onload" #(js/console.log "bin" (.-response xhr))) (.send xhr)))

Mensaje de error de Chrome:

XMLHttpRequest no puede cargar https://firebasestorage.googleapis.com/[EDITED] No hay encabezado ''Access-Control-Allow-Origin'' en el recurso solicitado. Por lo tanto, el origen '' http: // localhost: 3449 '' no tiene acceso permitido.


Otro enfoque para hacerlo es utilizar la API de Google JSON. paso 1: obtenga el token de acceso para usar con la API JSON Para obtener un token, vaya a: https://developers.google.com/oauthplayground/ Luego busque la API JSON o Storage Seleccione las opciones requeridas, es decir, leer, escribir, acceso completo (marque esas que son necesarios) Siga el proceso para obtener el token de acceso, que será válido durante una hora. Paso 2: use el token para presionar la API de Google JSON para actualizar CORS

Curl de muestra:

curl -X PATCH / ''https://www.googleapis.com/storage/v1/b/your_bucket_id?fields=cors'' / -H ''Accept: application/json'' / -H ''Accept-Encoding: gzip, deflate'' / -H ''Authorization: Bearer ya29.GltIB3rTqQ2tJgh0cMj1SEa1UgQNJnTMXUjMlMIRGG-mBCbiUO0wqdDuEpnPD6cbkcr1CuLItuhaNCTJYhv2ZKjK7yqyIHNgkCBup-T8Z1B1RiBrCgcgliHOGFDz'' / -H ''Content-Type: application/json'' / -H ''Postman-Token: d19f29ed-2e80-4c34-85ee-c46c9058fac0'' / -H ''cache-control: no-cache'' / -d ''{ "location": "us", "storageClass": "Standard", "cors": [ { "maxAgeSeconds": "360000000", "method": [ "GET", "HEAD", "DELETE" ], "origin": [ "*" ], "responseHeader":[ "Content-Type" ] } ] }''


Solo quiero agregar a la respuesta. Simplemente vaya a su proyecto en la consola de google (console.cloud.google.com/home) y seleccione su proyecto. Abra el terminal y simplemente cree el archivo cors.json ( touch cors.json ) y luego siga la respuesta y edite este archivo ( vim cors.json ) como lo sugiere @ frank-van-puffelen

Esto funcionó para mí. ¡Salud!