小编Dio*_*iar的帖子

使用 NodeJS 从 GCP 存储下载对象

我正在使用@google-cloud/storage从节点应用程序访问 Google Cloud Storage 存储桶内的对象,但我无法使其工作。

我已在 GCP 控制台上创建了一个服务帐户,并为其分配了存储管理员角色,但当我尝试获取文件时,我收到以下消息:

service-account-user@my-project-5411148.iam.gserviceaccount.com 没有 storage.objects.get 访问 my-bucket-45826813215/some-object 的权限。

查看存储桶的权限选项卡,我可以看到服务帐户与继承的注释一起列出,并且我没有为对象设置任何特定权限。

我的代码如下所示:

const { Storage } = require('@google-cloud/storage');
const config = require('./config');
const storage = new Storage({ 'keyFilename': config.configFullPath('gcloud') });

const privateBucket = storage.bucket('my-bucket-45826813215'); 

let objectDownload = async (filename) => {
    let file = privateBucket.file(filename);
    let result = await file.download();
    return result;
}

objectDownload('some-object')
    .then(() => {
        console.log('Done');
    })
    .catch((err) => {
        console.log(err.message);
    });
Run Code Online (Sandbox Code Playgroud)

关于我做错了什么有什么想法吗?

node.js google-cloud-storage google-cloud-platform google-iam

3
推荐指数
1
解决办法
1万
查看次数