当前位置: 首页 > 知识库问答 >
问题:

同一服务器的AWS云前端签名cookie断断续续失败

荣俊
2023-03-14

我们使用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; 

它用于访问资源URL,如http://cloudfront.org_name.com/2016/7/1/Standing 冥想_更新91615.mp3

所有三个cookie都由服务器(基于Java)为每个请求重新设置为正确的预设值。

对于大多数内容,它在大多数时间都能正常工作,但对于某些资源,它只是失败了,出现了403禁止的错误。

如果我在单独的浏览器选项卡中打开两个内容(一个工作,一个不工作),那么除了资源URL之外,所有cookie和其他cookie看起来都完全相同。

然而——一个有效,而另一个无效。

更令人困惑的是,有时从同一台物理客户机请求的相同资源,一次在FF中,另一次在Chrome中,在一个浏览器中工作,但在另一个浏览器中失败。

此外,有时清除用户浏览器cookies是有效的,而另一次则失败,没有明显的模式。

当我挣扎着看到底出了什么问题的时候,这让我发疯。

有人能提供一些关于原因是什么以及可以尝试哪些补救措施的见解吗?

共有1个答案

桑坚
2023-03-14

好的,答案在我对Michael的回复中:

我后来注意到,用于工作内容和失败内容的资源URL是不同的。一眼就看不出有什么不同,但却很不一样。一切都是一样的-库克,标题,其他参数。但是我比较了两种不同的内容。第一个URL始终有效,第二个URL始终失败。

吸取的教训:仔细地卷曲这两个资源,分析URL,看看到底有什么不同。

提示:使用Chrome的开发工具派生curl命令:右键单击失败的URL-

顺便说一句,我们刚刚重新上传了失败的资源,并更新了引用的网页——一切都恢复了正常。

 类似资料:
  • 问题内容: 所以我有一个先前的问题,但意识到我发布了错误的违规代码。我在下面标记了令人反感的陈述。 我正在尝试使用该switch语句为每个运算符设置优先级。 也许有人可以指出我正确的方向。 请注意,我正在运行JAVA 7,因此String Switch可以工作。 码 opType.java Operator.java 问题答案: 如果您放置了,则该函数会在执行之前返回,因此将永远无法达到。 相反,

  • 我在单元测试中使用groovy脚本。我有以下代码片段,我在单个测试脚本中使用多个断言。 第一个断言失败并停止执行。但我想继续进一步的代码片段。 与selenium中的软断言类似,我应该如何收集groovy中的所有失败异常。

  • 网不好的情况下图片从上到下断断续续的渲染怎么解决?

  • 问题内容: 我正在通过Java与Eclipse和TestNG框架一起使用Selenium RC。我有以下代码片段: 第一个断言失败,执行被停止。但我想继续进一步的代码片段。 问题答案: Selenium IDE使用验证执行软断言,这意味着即使检查失败,测试仍将继续,并且可以在测试结束时或在发生硬断言时报告失败。 使用TestNG,可以通过使用自定义测试侦听器来拥有这些软断言。我已经在博客上记录了如

  • 在Web界面上传大文件时,如果网络不可靠,则可能会中断上传。如果上传可以从上次停止的地方恢复,将会很方便。在 Seafile 专业版 4.4.0及更新版本中,支持断点续传功能。 断点续传的工作原理如下: 用户在Web界面上传一个大文件,并且在上传过程中连接中断。 服务器将记住上传停止的位置。 当同一个文件被上传到相同资料库中的同一文件夹时,服务器会告诉浏览器从哪里开始上传。 限制: 只支持重新上传