0
精确的文字:“访问被拒绝来电没有storage.objects.get访问(网址)上反对”访问App Engine中的谷歌存储对象创建signedUrl时拒绝
我现在有对谷歌2个项目服务。一种是Android/iOS应用程序的资源,它将图像上传到谷歌云存储(更多地是firebase存储)。另一个是node.js服务器,用于检测图像上传时间,并将带有signedUrl的电子邮件发送到该图像。
Node.js的服务器具有以下谷歌的存储设置和功能被称为:
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提供的链接来工作,当点击它会打开一个与图像有一个新的标签。但是,最近它刚刚停止。也许它与权限有关,但是我没有做什么工作。有任何想法吗?
谢谢您的高级。
是否有可能使用您用来生成签名URL的密钥的服务帐户已失去对对象的读访问权限? –
这是可能的。我可能不会错误地执行整个桶权限。我已经为查看者,编辑者和项目所有者添加了权限和对象默认权限,以拥有所有者权限。有什么我失踪? @BrandonYarbrough –
桶权限不是分层的。他们不会授予对桶内对象的读取权限。 “默认对象权限”将会,但仅限于新对象,并且仅在默认情况下。尝试将服务帐户显式添加到某个对象以查看它是否修复了问题。 –