【问题标题】:Google storage bucket is public and still no access to files谷歌存储桶是公开的,仍然无法访问文件
【发布时间】:2016-10-05 14:54:47
【问题描述】:

我正在使用 nodeJS 创建一个公共存储桶(为 ES5/ES6 混合道歉,复制 Google 的示例是 ES5):

 var gcloud = require('google-cloud');

 const gcs = gcloud.storage({
      projectId: 'h-212f6',
      keyFilename: './h-9a814129651f4.json'
 });

const createBucket = (bucketName) => {
  // Create a new bucket.

  return new Promise((resolve, reject) => {

    gcs.createBucket(bucketName, function (err, bucket) {
        if (err) {
            reject(err);
        }

        bucket.acl.add({
            entity: 'allUsers',
            role: gcloud.storage.acl.READER_ROLE
        }, function(err, aclObject) {
            console.log('err -> ', err);
        });

        resolve(bucket);
    });

  });
};

const upload = (bucket, filepath, options) => {

    return new Promise((resolve, reject) => {

        bucket.upload(filepath, options, function (err, file) {

            if (err) {
                reject(err);
            }

            resolve(file)
        });
    });
};

但无法从 Chrome 访问文件:

更新:

当我更改文件的 ACL 时,一切似乎都可以正常工作:

const upload = (bucket, filepath, options) => {

    return new Promise((resolve, reject) => {

        bucket.upload(filepath, options, function (err, file) {

            if (err) {
                reject(err);
            }

            file.acl.add({
                entity: 'allUsers',
                role: gcs.acl.READER_ROLE
            }, function (err, aclObject) {

                console.log('err -> ', err);

            });

            resolve(file)
        });
    });
};

但是,我的假设是更改存储桶 ACL 就足够了,不是吗?

【问题讨论】:

  • 您能告诉我们更多关于您在哪里运行此代码的信息吗?具体返回 401 的操作是什么?第 5 行的相对路径是否可能无法正常工作?
  • 当然可以。在本地运行它并在尝试从 chrome 导航到返回的 url 时出现错误

标签: node.js google-cloud-storage


【解决方案1】:

当您在上面的代码中设置 ACL 时,您是在为现有对象设置它。为了也将其设置为新对象的默认 ACL,您需要执行以下操作:

bucket.acl.default.add({
    entity: 'allUsers',
    role: gcloud.storage.acl.READER_ROLE
}, function(err, aclObject) {
    console.log('err -> ', err);
});

更多示例请参见here

【讨论】:

    猜你喜欢
    • 2019-04-03
    • 2019-08-24
    • 2017-05-13
    • 2016-12-19
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 2015-08-23
    • 2017-02-10
    相关资源
    最近更新 更多