确切文字:"拒绝访问。调用者没有对(url)"
上的对象进行storage.objects.get访问我目前在谷歌服务上有2个项目。一个是Android / iOS应用程序的资源,它将图像上传到谷歌云存储(更多的是firebase存储)。另一个是node.js服务器,它检测图像上载的时间并将带有signedUrl的电子邮件发送到该图像。
node.js服务器具有以下名为的Google存储设置和功能:
var storage = require("@google-cloud/storage")({
keyFilename: "google_secret.json",
projectId: 'xxxxxxxxxxx'
});
function getImageFromGcloud(x, y, time, date_string) {
var bucket = storage.bucket('bucket-name');
var storage_ref = 'Incomplete_Scans/' + date_string + "/" x + "_" + y + "_" + time + ".jpeg";
bucket.file(storage_ref).getSignedUrl({
action: 'read',
expires: '03-17-2025'
}, function(err, url) {
if (err){
console.error(err);
return;
}
console.log("Sent email");
});
}
getSignedUrl提供的链接用于工作,点击它时会打开一个带有图像的新选项卡。然而,截至最近,它刚刚停止。也许它与权限有关,但我所做的一切都在起作用。有任何想法吗?
先谢谢你。
答案 0 :(得分:1)
如果您获得403(权限被拒绝)而不是401(无效身份验证),则签名请求的服务帐户可能由于某种原因失去了对对象的访问权限。添加对该服务帐户的读取权限。