How to get file link from google cloud storage using Node.js ?
Last Updated :
05 Apr, 2023
To get the signed public link of a file from the Firebase storage, we need a reference to the file in Google Cloud storage. As we just have a path to that file in storage we would first need to create a reference to that object and then get a signed link to that file.
Steps to generate a public link to a file in storage using the file path:
- Get the reference to the storage using a bucket() and file() methods on the storage object from @google-cloud/storage.
- Generate a signed public link for that file using the getSignedUrl method on the reference object created in the first step.
Module Installation: Install the module using the following command:
npm install @google-cloud/storage
The method getSignedUrl() tasks a config object as input and returns a Promise that resolves with the download URL or rejects if the fetch failed, including if the object did not exist.
Example: Filename: index.js
Javascript
const { Storage } = require( '@google-cloud/storage' );
const storage = new Storage();
const bucketName = 'geeksforgeeks' ;
const fileName = 'gfg.png' ;
const fileRef = storage.bucket(bucketName).file(fileName);
fileRef.exists().then( function (data) {
console.log( "File in database exists " );
});
const config = {
action: 'read' ,
expires: '01-01-2026' ,
};
fileRef.getSignedUrl(config, function (err, url) {
if (err) {
console.error(err);
return ;
}
console.log( "Url is : " + url);
});
|
Run the index.js file using the following command:
node index.js
Output:
File in database exists
Url is : https://storage.googleapis.com/geeksforgeeks/gfg.png?X-Goog-Algorithm=[token]
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...