当前位置: 首页 > 面试题库 >

google-cloud TypeError:gcs.bucket不是函数

袁高明
2023-03-14
问题内容

我正在尝试实现云功能,但是如果我需要这样会出错

   var storage =require('@google-cloud/storage')();

部署时是这样的

var storage = require('@google-cloud/storage');

所以我决定使用上述方法,但是尝试上传图片时出现错误“ TypeError:gcs.bucket不是函数”

const os = require('os');
const path = require('path');

///

exports.onFileChange = functions.storage.object().onFinalize((event) => {
 const bucket = event.bucket;
 const contentType = event.contentType;
 const filePath = event.name;
 console.log('Changes made to bucket');

///

 if(path.basename(filePath).startsWith('renamed-')){
     console.log("File was previously renamed");
     return;
 }
 const gcs = storage({
    projectId: 'clfapi'
  });

///

 const destBucket = gcs.bucket(bucket);
 const tmFiilePath = path.join(os.tmpdir(), path.basename(filePath));
 const metadata = {contentType: contentType};

///

 return destBucket.file(filePath).download({
     destination: tmFiilePath
 }).then(() => {
     return destBucket.upload(tmFiilePath, {
         destination: 'renamed-' + path.basename(filePath),
         metadata: metadata
     })
   });
});

问题答案:

API在Cloud
Storage节点SDK的2.x版本中进行了更改。根据文档,您可以这样导入SDK:

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

然后,您可以创建一个新的存储对象:

// Creates a client
const storage = new Storage({
  projectId: projectId,
});

然后您可以进入一个桶:

const bucket = storage.bucket()


 类似资料:
  • 我们将Google Maps API V3包含在我们的内部系统中,代码如下:

  • 问题内容: 当我试图在React版本15.2.0中使用这两个函数时,我在代码中发现了一个问题,尽管如此,我找到了一种解决方法,但是我想知道是否有更好的解决方案。 因此,每当我尝试运行index.html文件时,都不会显示任何内容,但是控制台会出现第一个错误: React.render不是function 。我发现发生这种情况是因为新版本的React需要使用react-dom,即 现在问题已解决,但

  • 问题内容: 这是node.js index.js文件的标头: 这是用于侦听Firestore更改的node.js函数: 这在package.json文件中: 当我尝试执行“ firebase deploy”命令时,这是我得到的错误: 错误:解析函数触发器时发生错误。 TypeError:admin.firestore不是函数 问题答案: 我能够重现错误并强行解决。我对此并不了解,也无法提供有关此解

  • 我在nodeJS中有一个主要的谷歌云功能。在这个函数中,我希望通过编程在同一个项目中创建另一个云函数。这个新的云函数的代码可以存储在谷歌云存储的zip文件中。我试着跟着这里的导游走:https://cloud.google.com/functions/docs/reference/rest/v1/projects.locations.functions/create 我能够在测试模拟器中运行查询,

  • 问题内容: 我正在为无法解决的错误而烦恼。我有以下内容; JSON格式 和下面的jQuery 但是我收到一个错误,认为map.data未定义为函数?看着它,我不知道什么是行不通的,因为我已将其从以前使用的代码复制到新项目中。唯一不同的是JSON源。上一个没有[]括号之前的部分。这是什么让我失望吗? 问题答案: 对象,在JavaScript没有方法,它只是为数组,。 因此,为了使您的代码正常工作,请

  • 问题内容: 我有这段代码可用于从Arduino接收数据,但我想将数据发送回Arduino并在客户端页面上获得响应。我添加了侦听功能,但是从客户端页面发送数据时却不断获取信息。 test.js 问题答案: 您的价值不是应有的价值。 通常的做事方式是这样的: 但是我猜你的价值是这样的: 那不是同一回事。那就是模块句柄。但是,当您这样做时: 然后,是一个socket.io实例。您可以将侦听器绑定到实例,