Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform “如何设置谷歌云存储设置”;“公开分享”;false并在文件名前显示复选框_Google Cloud Platform_Google Cloud Storage_Gcloud - Fatal编程技术网

Google cloud platform “如何设置谷歌云存储设置”;“公开分享”;false并在文件名前显示复选框

Google cloud platform “如何设置谷歌云存储设置”;“公开分享”;false并在文件名前显示复选框,google-cloud-platform,google-cloud-storage,gcloud,Google Cloud Platform,Google Cloud Storage,Gcloud,当我从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(

当我从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的图像,但是公共链接是可用的,任何人都可以通过将其粘贴到url并登录gmail来查看它

我想在上传时带一个复选框,而不是公共链接(就像我们在存储上手动上传时发生的那样)

请帮助解决这个问题

找到答案了

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
  });
“预定义ACL”是关键。 它使上传时的图像成为公共或私有

这只允许项目团队所有者在登录后公开URL或以匿名方式查看URL