使用NodeJS在本地上传文件到Google Cloud存储
我正尝试使用我的服务帐户在本地计算机上使用简单代码将图像上传到Google云端存储:
const storage = require('@google-cloud/storage'); const fs = require('fs'); const gcs = storage({ projectId: 'ID', keyFilename: 'KEYNAME' }); var bucket = gcs.bucket('BUCKET NAME'); bucket.upload('hiking-image.jpg', function(err, file) { if (err) throw new Error(err); }); if (err) throw new Error(err); ^
但是,我收到下面的错误消息。 Google Cloud API只能在App Engine上部署时才能工作,还是我在这里做错了? 我能够让Google Vision API使用同一个服务帐户在本地工作。
Error: ApiError: Forbidden at /Users/user/google-cloud/upload/upload.js:10:20 at Pumpify.<anonymous> (/Users/user/node_modules/@google-cloud/storage/src/bucket.js:1218:9) at emitOne (events.js:101:20) at Pumpify.emit (events.js:188:7) at Pumpify.Duplexify._destroy (/Users/user/node_modules/duplexify/index.js:184:15) at /Users/user/node_modules/duplexify/index.js:175:10 at _combinedTickCallback (internal/process/next_tick.js:67:7) at process._tickCallback (internal/process/next_tick.js:98:9)
您需要为您的服务帐户提供适当的angular色。 转到谷歌云控制台,菜单“IAM和pipe理员”
- 创build一个服务帐户
- 去IAM面板
- 编辑您刚刚创build的服务帐户的angular色。 select云存储并使其成为完整的pipe理员,但最好的方法是根据您的需要将其制作为存储对象的创build者或读者。
Overdrivr指出,我只是在云端控制台的服务帐户中发生错误
- 从Google云端存储中读取图片,并使用Google云端function进行发送
- Node.js Google云存储上传目标规范
- Google Storage nodejs上传MIME TYPE
- 如何使用Node API从Google Cloud Storage返回指定的图像大小?
- Google Cloud Storage(Js),asynchronous/等待和云function错误
- Google Cloud Storage签署url – NodeJS
- 谷歌云存储对象删除谷歌API,Node.js和request.del()
- 如何从服务器上的客户端JavaScript上载到Google云端存储?
- Google云端存储似乎忽略了客户提供的encryption密钥标头