Open In App

How to get file link from google cloud storage using Node.js ?

Last Updated : 05 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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




// Imports the Google Cloud client library
const { Storage } = require('@google-cloud/storage');
 
// Creates a client
const storage = new Storage();
 
const bucketName = 'geeksforgeeks';
const fileName = 'gfg.png';
 
// Create a reference to the file to generate link
const 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);
});


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
Previous
Next
Share your thoughts in the comments

Similar Reads