【发布时间】:2021-02-21 00:40:31
【问题描述】:
我正在尝试通过 Google Cloud CDN 让 hls / dash 流工作,以获得视频点播解决方案。文件/清单位于谷歌云存储桶中,一切看起来都配置正确,因为我遵循了文档https://cloud.google.com/cdn/docs/using-signed-cookies 的每一步。
现在我正在使用来自Google Cloud CDN signed cookies with bucket as backend 的等效 Node.js 代码来创建一个具有正确签名密钥名称和值的签名 cookie,这是我之前在谷歌云中设置的。 cookie 已发送到我在 Google Cloud 中的负载平衡器后端。
可悲的是,我总是收到 403 回复说 <?xml version='1.0' encoding='UTF-8'?><Error><Code>AccessDenied</Code><Message>Access denied.</Message></Error>。
更多信息:
- 签名的 urls / cookie 在负载均衡器后端激活
- cdn-account 存储桶中的 IAM 角色设置为“objectViewer”
- 签名密钥已创建、保存并用于对 cookie 进行签名
非常感谢您对此的任何帮助。
编辑: 我刚刚尝试了确切的 python 代码谷歌状态来创建来自 https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/cdn/snippets.py 的签名 cookie,具有以下参数:
电话:sign_cookie('http://cdn.myurl.com/', 'mykeyname', 'mybase64encodedkey', 1614110180545)
密钥是从谷歌直接复制的,因为我在那里生成它。
负载均衡器日志写入invalid_signed_cookie。
【问题讨论】:
-
如果没有要测试的示例 URL 就很难调试,但一个常见的问题是您的密钥编码错误(错误的 base64 格式)或者您上传了错误的密钥,或者格式错误。看看 Go 和 Python 中的示例代码:cloud.google.com/cdn/docs/…
-
感谢@elithrar 的回答。我刚刚编辑了描述以提供更多详细信息。也许这有帮助?
-
我建议打开支持请求 - 我怀疑您的密钥/您使用它的方式存在问题。一个常见问题是您在键中包含换行符或截断它。
标签: cookies google-cloud-storage signed google-cloud-cdn signed-url