Open In App

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

Last Updated : 05 Apr, 2023
Comments
Improve
Suggest changes
Like Article
Like
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]

Next Article

Similar Reads