📜  如何使用 Node.js 从谷歌云存储中获取文件链接?

📅  最后修改于: 2022-05-13 01:56:46.887000             🧑  作者: Mango

如何使用 Node.js 从谷歌云存储中获取文件链接?

要从 firebase 存储中获取文件的签名公共链接,我们需要对 Google 云存储中的文件的引用。由于我们在存储中只有该文件的路径,因此我们首先需要创建对该对象的引用,然后获取指向该文件的签名链接。

使用文件路径生成存储中文件的公共链接的步骤:

  1. 使用来自@google-cloud/storage 的存储对象的bucket() 和file() 方法获取对存储的引用。
  2. 在第一步中创建的引用对象上使用 getSignedUrl 方法为该文件生成签名的公共链接。

模块安装:使用以下命令安装模块:

npm install @google-cloud/storage

方法 getSignedUrl() 将配置对象作为输入任务,并返回一个 Promise,该 Promise 使用下载 URL 解析,或者如果获取失败(包括该对象不存在)则拒绝。

示例:文件名: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);
});


使用以下命令运行index.js文件:

node index.js

输出: