【发布时间】: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