0

我在 Goolge Cloud 上的 PHP App Engine 中使用 signedUrl 来使用以下代码片段获取 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 文件中,但它不起作用。

4

1 回答 1

0

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

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

于 2021-07-21T23:17:27.543 回答