【发布时间】:2017-05-20 23:41:48
【问题描述】:
我正在尝试使用我的服务帐户在我的机器上本地使用简单代码将图像上传到 Google Cloud Storage:
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)
【问题讨论】:
-
问题已经很老了,但是您是否授权服务帐户API访问云存储?
-
确实 :) 这只是 Google Cloud Console 中服务帐户的错误
-
我已经做了一个更有文档的答案,如果它适合你,请随时接受。干杯!
标签: node.js google-cloud-storage