我们使用AWS为我们的网站存储aduio /视频内容。
我们使用预设政策签署的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
所有三个cookie都由服务器(基于Java)为每个请求重新设置为正确的预设值。
对于大多数内容,大部分时间都可以正常工作,但对于某些资源,它只会因403 Forbidden错误而失败。
如果我在单独的浏览器选项卡中打开两个内容(一个工作,一个不工作),除资源URL外,所有cookie和其余内容看起来完全相同。
然而 - 一个有效,另一个无效。
更令人困惑的是,有时同一物理客户端计算机请求的资源相同,一旦在FF中,在Chrome中的其他时间,在一个浏览器中工作但在另一个浏览器中失败。
此外,有时清除用户浏览器cookie有效,另一次失败,没有可辨别的模式。
当我努力想知道什么是错的时候,它让我疯了。任何人都可以提供任何有关原因的见解以及可以尝试哪些补救措施?
答案 0 :(得分:0)
好的,答案在我对Michael的回复中:
我后来注意到,工作和失败内容的资源URL不同。非常接近于第一眼看不到差异,但不同。一切都是一样的 - 厨师,标题,其他参数。但我正在比较两种不同的内容。第一个URL始终有效,第二个始终失败。
获得的经验教训:仔细卷曲这两种资源并分析uRLS,看看究竟有什么不同。
提示:使用Chrome的开发工具派生curl命令: 右键单击失败的URL - >禁止复制>复制为cURL。然后粘贴命令行进行测试。
顺便说一句,我们刚刚重新上传了失败的资源并更新了引用的网页 - 一切都有效。