【问题标题】:Why do my signed URLs get an error 403?为什么我的签名 URL 会收到错误 403?
【发布时间】:2017-07-01 04:56:29
【问题描述】:

参考:https://googlecloudplatform.github.io/google-cloud-node/#/docs/storage/0.8.0/storage/file?method=getSignedUrl

这非常奇怪。我确实将我的服务帐户设置为具有存储对象的读取权限。

发生了什么事?

服务器:

snapshot.forEach(function(childSnapshot){
            titleArray.push(childSnapshot.val().title);
            usernameArray.push(childSnapshot.val().username);
            keyArray.push(childSnapshot.key);
            var file = bucket.file(childSnapshot.val().image);
            var config = {
              action: 'read',
              expires: Date.now() + 10000,
              contentType: 'image/png'
            };

            file.getSignedUrl(config, function(err, url) {
                if (err) {
                    console.error(err);
                    return;
                }
                imageArray.push(url);
                if (imageArray.length == 9) {
                    res.render("home", {keyArray: keyArray, titleArray: titleArray, usernameArray: usernameArray, imageArray: imageArray});
                }
            });
        });

客户:

$(".homeImage").each(function(i) {
            var row = $(this)
            row.attr('id', i);
            if (i == 4) {

            } else {
                $("#"+i).css('background-image', "url('" + imageArray[i]  + "')");
            }
        });

回复:

这非常奇怪,因为我认为签名 URL 应该验证我的请求是由我的服务帐户发送的。

【问题讨论】:

  • 你看到的结果是什么?
  • 对不起,我应该澄清一下,错误响应的正文是什么?通常有一些带有更多细节的 XML。
  • @royalpeasantry 是的。它说不允许匿名用户访问此资源。这真的非常奇怪,因为我已经授权我的服务帐户访问我的存储桶对象,并且我正在使用应该提供某种身份验证的签名 url。
  • @royalpeasantry 我用截图编辑了我的问题。
  • 错误消息暗示您的请求没有任何关联的身份验证。对于签名 URL,这意味着未设置 GoogleAccessId/Signature/Expires 查询参数。我会调试打印图像阵列服务器端和客户端,看看它在哪里丢失了。

标签: javascript node.js google-cloud-platform google-cloud-storage


【解决方案1】:

错误消息意味着您的请求没有任何相关的身份验证。对于签名 URL,这意味着未设置 GoogleAccessId/Signature/Expires 查询参数。

我会调试打印图像阵列服务器端和客户端以查看丢失的位置。

编辑:在这种情况下,& 似乎在某处被 & 替换。

【讨论】:

    猜你喜欢
    • 2013-05-25
    • 1970-01-01
    • 2014-03-12
    • 2020-11-05
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 2020-11-05
    • 2018-06-22
    相关资源
    最近更新 更多