node.js - 使用 Node.js 客户端在 gcloud 存储中创建和共享存储桶

标签 node.js google-cloud-storage gcloud gcloud-node

我需要使用 Node.js 客户端在 gcloud 存储中创建和共享一个存储桶。

这是我的代码

 Bucket.createNewBucket = function (request, callBack) {
    // code for create a new bucket
    var bucketName = request.body.bucketName;

    gcs.createBucket(bucketName, function (err, bucket) {
        if (!err) {
            console.log("created bucket successfully");
            var bucketadded = gcs.bucket(bucketName);
            bucketadded.acl.add({
                entity: 'testmail@gmail.com',
                role: 'READER'
            }, function (err, aclObject) {
                if (!err) {console.log("acl added successfully");
                }else{
                    console.log(err);
                }
             });
            callBack(null, true);
            return;
        } else {
            callBack("Error with bucket creation. Error: " + err, true);
            return;
        }
    });
};

使用此代码,我能够成功地在谷歌存储中创建一个存储桶。但是我无法向存储桶添加 acl 权限。

我遇到这样的错误

{ [ApiError: Invalid Value]
  errors: [ { domain: 'global', reason: 'invalid', message: 'Invalid Value' } ],
  code: 400,
  message: 'Invalid Value',
  response: undefined }

最佳答案

使用这个

entity: 'user-testmail@gmail.com'

代替

entity: 'testmail@gmail.com'

关于node.js - 使用 Node.js 客户端在 gcloud 存储中创建和共享存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34759919/

相关文章:

html - Node.js 渲染 html 或 css,而不是两者

node.js - 如何在 Microsoft Bot Framework 中处理获取请求?

google-app-engine - GCS bucket Java 客户端 api 中的通配符

python - 通过 Python (Jupyter) 从谷歌云存储中读取一个 .gz 文件

python - GAE - 将优化后的图像上传到云存储

linux - Google Cloud SDK - 有没有办法在没有互联网访问的情况下在 Linux 上手动安装 google cloud sdk?

linux - Gcloud - 如何在服务器上自动安装 gcloud?

windows - 如何从 Bash for Windows 10 运行 .bat 或 .cmd 文件

node.js - Azure 函数 TypeScript 装饰器

javascript - 使用 PhantomJS 和 node.js 保存和渲染网页