Para obtener el enlace público firmado de un archivo del almacenamiento de Firebase, necesitamos una referencia al archivo en el almacenamiento en la nube de Google. Como solo tenemos una ruta a ese archivo almacenado, primero tendríamos que crear una referencia a ese objeto y luego obtener un enlace firmado a ese archivo.
Pasos para generar un enlace público a un archivo almacenado utilizando la ruta del archivo:
- Obtenga la referencia al almacenamiento utilizando los métodos bucket() y file() en el objeto de almacenamiento desde @google-cloud/storage .
- Genere un enlace público firmado para ese archivo usando el método getSignedUrl en el objeto de referencia creado en el primer paso.
Instalación del módulo: Instale el módulo usando el siguiente comando:
npm install @google-cloud/storage
El método getSignedUrl() asigna un objeto de configuración como entrada y devuelve una Promesa que se resuelve con la URL de descarga o se rechaza si la recuperación falla, incluso si el objeto no existe.
Ejemplo: Nombre de archivo: index.js
Javascript
// Imports the Google Cloud client library const {Storage} = require('@google-cloud/storage'); // Creates a client const storage = new Storage(); var bucketName = 'geeksforgeeks'; var fileName = 'gfg.png'; // Create a reference to the file to generate link var fileRef = storage.bucket(bucketName).file(fileName); fileRef.exists().then(function(data) { console.log("File in database exists "); }); const config = { action: 'read', // A timestamp when this link will expire expires: '01-01-2026', }; // Get the link to that file fileRef.getSignedUrl(config, function(err, url) { if (err) { console.error(err); return; } // The file is now available to // read from this URL console.log("Url is : " + url); });
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
El archivo en la base de datos existe . La
URL es: https://storage.googleapis.com/geeksforgeeks/gfg.png?X-Goog-Algorithm=[token]