当我从node.js应用程序上传图像时,由于公共链接可用,图像会公开上传。 我想私下上传图片
const storage = Storage({
projectId: config["googleProjectID"]
});
for (var key in CLOUD_BUCKET){
bucketReference[key] = storage.bucket(CLOUD_BUCKET[key]);
}
const gcsname = "your."+extension;
if(bucketReference[tag]){
file = bucketReference[tag].file(gcsname);
}
这是使用baseurl / bucket_name / your.jpeg上传图片,但公共链接可用,任何人都可以通过在网址中粘贴并登录Gmail来查看。
我想在上传时带上一个复选框而不是公共链接(当我们在存储上手动上传时会发生这种情况)。
请帮忙解决这个问题!
答案 0 :(得分:0)
得到了答案!
const stream = file.createWriteStream({
metadata: {
contentType: "image/jpeg",
},
predefinedAcl: "bucketOwnerRead"//shows no checkbox since project owner has reader access and no one accept object owner can see images
predefinedAcl: "bucketOwnerFullControl" //shows a checkbox and only shows the image to those who are project owners
});
" predefinedAcl"是关键。 它将图像上传为公共或私有。
这只允许项目团队所有者在登录后公开网址或以隐身方式查看网址。