【发布时间】:2025-11-27 09:45:01
【问题描述】:
我们使用 AWS 为我们的网站存储音频/视频内容。
我们使用预设策略使用签名 Cookie: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-setting-signed-cookie-canned-policy.html
所以我们为每个请求设置了 3 个 cookie 来检索数据:
CloudFront-Policy;
CloudFront-Signature;
CloudFront-Key-Pair-Id;
用于访问http://cloudfront.org_name.com/2016%2F7%2F1%2FStanding+Meditation_updated+91615.mp3之类的资源URL
所有三个 cookie 都由服务器(基于 Java)为每个请求重新设置为正确的预设值。
对于大部分内容,大部分时间它都可以正常工作,但对于某些资源,它只是失败并出现 403 Forbidden 错误。
如果我在单独的浏览器选项卡中打开两个内容(一个有效,一个无效),所有 cookie 和其余部分看起来完全相同,除了资源 URL。
然而 - 一个有效,而另一个无效。
更令人困惑的是,有时从同一台物理客户端机器请求相同的资源,一次在 FF 中,另一次在 Chrome 中,在一个浏览器中工作但在另一个浏览器中失败。
此外,有时清除用户浏览器 cookie 有效,有时则失败,没有明显的模式。
这让我发疯了,因为我很难弄清楚哪里出了问题。
谁能提供任何关于可能是什么原因以及可以尝试哪些补救措施的见解?
【问题讨论】:
-
我们首先需要确定问题出在cookie、URL还是服务上。我不确定 URL 中的
+不会在 CloudFront 中给您带来麻烦;有一次,我认为存在与此相关的错误。是否有一些从不有效的网址?是否有一些从不起作用的cookies?从失败中捕获 cookie 和 URI,您应该能够使用curl重放它们。 -
谢谢迈克尔。使用 curl,我使用完全相同的 cookie 运行这 2 个 url: curl -v -b "3 cookie:value pairs go here" cloudfront.test.company_name.com/… - 不起作用; curl -v -b "3 cookie:value 对在这里"cloudfront.test.company_name.com/… - 有效
标签: java amazon-web-services cookies amazon-cloudfront