【问题标题】:Google Cloud PHP App Engine - signedUrl - Expired Token - Custom Error PageGoogle Cloud PHP App Engine - signedUrl - Expired Token - 自定义错误页面
【发布时间】:2021-09-25 05:31:15
【问题描述】:

我在 Goolge Cloud 上的 PHP App Engine 中使用 signedUrl 使用以下代码 sn-p 获取存储在 firebase 存储中的文件的 https:// 链接:

$url = $object->signedUrl(
    new \DateTime('15 min'),
    [
        'version' => 'v4',
    ]
);

所以生成的 url 有效期为 15 分钟。 15 分钟后调用此 url 在浏览器中显示以下消息:

<Error>
<Code>ExpiredToken</Code>
<Message>The provided token has expired.</Message>
<Details>Request signature expired at: 2021-07-16T11:29:51+00:00</Details>
</Error>

是否有可能为这种情况提供自定义错误 html 页面?我试过使用

error_handlers:
  - file: default_error.html

在我的 app.yaml 文件中,但它不起作用。

【问题讨论】:

  • 该错误是由 Google 生成的。我不知道有任何方法可以使用自定义消息更改 Google 错误。我通过在我的网络服务器中生成指向自定义路由的链接来解决同样的问题。我验证客户端(会话 cookie),然后创建签名 URL 并将客户端重定向到签名 URL。

标签: google-app-engine google-cloud-storage google-cloud-php-client


【解决方案1】:

在 app.yaml 中设置错误不起作用,因为错误是由 GCS 生成的,而不是 GAE。

GCS 不提供自定义 403 错误的方法。如果你需要这个,你需要在 GCS 前面提供一些东西来向用户提供错误。例如,检查签名和重定向为John suggests 或创建一个 GAE 端点来执行 GCS 提取,然后将结果流式传输到客户端或显示 403。

【讨论】:

  • 好的 - 谢谢。是否有任何文档或教程如何创建 GCS 获取的 GAE 端点?当链接过期后用户在浏览器中刷新链接(如storage.googleapis.com/app.appspot.com/foo/bar/…)时,我必须处理这种情况。在这种情况下,我们希望得到一条自定义错误消息。
猜你喜欢
  • 2014-01-27
  • 1970-01-01
  • 2016-05-16
  • 1970-01-01
  • 2016-09-02
  • 2013-06-06
  • 1970-01-01
  • 2021-02-11
  • 1970-01-01
相关资源
最近更新 更多