当前位置: 首页 > 知识库问答 >
问题:

如何为Google云存储设置Nodejs环境

诸葛令
2023-03-14

我是谷歌云平台的新手,我正在学习本教程

https://cloud.google.com/docs/authentication/getting-started#auth-cloud-implicit-nodeJS

在我使用Google Cloud设置环境变量后,这一行会导致问题

const {Storage} = require('@google-cloud/storage');

当我注释掉这行时,它会正常工作,否则它会抛出一个错误

TypeError: Expected `input` to be a `Function` or `Object`, got `undefined`
push../node_modules/gtoken/node_modules/pify/index.js.module.exports
D:/SE/Web/React/storybook/node_modules/gtoken/node_modules/pify/index.js:56
53 | var objType = typeof input;
54 | 
55 | if (!(input !== null && (objType === 'object' || objType === 
'function'))) {
> 56 |   throw new TypeError("Expected `input` to be a `Function` or 
`Object`, got `".concat(input === null ? 'null' : objType, "`"));
 | ^  57 | }
 58 | 
 59 | var filter = function filter(key) {
 View compiled
 ./node_modules/gtoken/build/src/index.js
 D:/SE/Web/React/storybook/node_modules/gtoken/build/src/index.js:65
 62 | 
 63 | var pify = require("pify");
 64 | 
 > 65 | var readFile = pify(fs.readFile);
 66 | var GOOGLE_TOKEN_URL = 'https://www.googleapis.com/oauth2/v4/token';
 67 | var GOOGLE_REVOKE_TOKEN_URL = 
'https://accounts.google.com/o/oauth2/revoke?token=';
 68 | 

共有1个答案

鞠边浩
2023-03-14

我遵循了你上面提到的相同的教程。对我起作用了。请确保您没有跳过流程中的任何步骤。

  1. 创建一个服务帐户并将JSON文件下载到您的计算机上是非常重要的。然后在云shell中上传JSON文件。
  2. 将Cloud Shell中的Google_Application_Credentials变量设置为JSON文件的路径。按照设置环境变量的说明操作。
  3. 创建虚拟环境。执行virtualenv[ENVIRONMENT_NAME]
  4. 通过执行source[ENVIRONMENT_NAME]/bin/activate来激活环境。
  5. 安装@google-cloud/storage库。执行NPM安装--save@google-cloud/storage
  6. 创建nodejs文件。添加“开始身份验证”>“验证身份验证文档”的代码表单。
  7. 通过执行节点[FILE_NAME].js来运行文件。

如果您得到一个错误:

错误:[GSERVICEACCOUNT]没有对项目[PROJECT_NUMBER]的Storage.Buckets.List访问权限。

  1. 然后复制整个[GSERVICEACCOUNT]
  2. 去找你谷歌云控制台
  3. 从导航菜单转到IAM&Admin页。
  4. 单击添加+
  5. 新成员中添加[GSERVICEACCOUNT]
  6. 在下拉菜单“代码”“选择角色”中,选择“代码”“存储管理”角色。
  7. 单击保存

现在,如果再次执行节点[FILE_NAME].js。您应该看到Cloud Shell上列出的所有桶。

 类似资料:
  • 因此,我正在查看来自Google的示例代码,但我无法确定如何激活配置文件? https://cloud.google.com/appengine/docs/flexible/nodejs/using-cloud-storage 示例代码: 但是,当您阅读https://github.com/googleCloudplatform/google-cloud-node/blob/master/docs

  • 我的网站文件托管在Google Cloud Storage,每次我更新一个文件(比如。png或。xml)时,我总是要等一段时间才能看到新文件出现在我的页面上。 有没有办法覆盖单个对象的默认缓存设置(max-age=3600)?尝试用“no store”、“no cache”、“max-age=0”编辑“cache-control”元数据,但它们似乎都不起作用,仍然在响应头中获得“cache-con

  • 但是应用程序引擎应用程序标识依赖于包,这在Python3.7env上是不可用的,如本文所述 Python3中没有专有的App Engine API。本节列出了建议的替换。 总体目标是您的应用程序应该是完全可移植的,并且可以在任何标准的Python环境中运行。您编写的是标准的Python应用程序,而不是应用程序引擎Python应用程序。作为这种转变的一部分,您不再需要为应用程序的核心功能使用专有的应

  • 问题内容: 我想通过运行程序时设置环境变量。这可能吗? 我试图这样设置: 但是结果消息说FOO不存在。 问题答案: 您必须传递一个包含键 env 的选项对象,该键 env 的值本身就是键值对的对象。

  • 下面的代码示例接收bufferedImage及其mimeType,然后将其上传到Google Cloud Storage。 一切正常,但由于某种原因,我的Google Cloud函数从存储API收到了一个403错误。 我必须做什么才能使我的GC函数访问GC存储? 我在文档中找不到任何东西来告诉我如何做到这一点。 这是我得到的错误 {“代码”:403,“错误”:[{“域”:“全局”,“原因”:“禁止

  • 谷歌云存储中的文件更改需要多长时间才能传播? 我遇到了一个非常令人沮丧的问题,我改变了一个文件的内容,并通过gsutil重新上传,但是这个改变几个小时后才显示出来。有没有办法强制一个改变的文件立即传播所有内容? 如果我查看谷歌云存储控制台中的文件,它会看到新文件,但如果我点击公共网址,它是旧版本,在某些情况下,是2个版本前的版本。 有没有我没有设置的标题? 编辑: 我尝试了,但它没有帮助,但也许旧