1

连接 AWS 服务时,出于安全原因,连接时间最长应为 15 分钟。

今年在以色列,冬季时钟更改推迟了大约 2 个月。

但是亚马逊似乎不知道,所以如果正确的以色列时间是下午 14:00,那么对于亚马逊来说是下午 13:00。

这种情况会导致对服务的每个请求都失败(尤其是 S3)


  1. 选项 1 是亚马逊修复它,但可能需要时间。

  2. 选项 2 是手动更改发出请求的服务器上的时间。

但是,就我而言,这是不可能的,因为服务器是虚拟机,我没有更改时间的权限。

还有其他方法可以解决这个问题吗?连接亚马逊服务时以某种方式更改服务器上的时间?

我正在使用 django 和 django-storages (boto) 来连接 S3

4

3 回答 3

3

如果 S3 没有解决问题,并且您不想调整服务器的时间,您可以通过修改 boto 源代码(请参阅 参考资料HmacAuthV1Handler->add_auth)或猴子修补原始 boto 代码来补偿日期差异。

于 2013-09-11T11:43:03.627 回答
1

以色列的时区变化在 2013d 版的IANA 时区数据库中进行了说明。在 Python 中,这是通过pytz实现的。

根据这些文档,Django可以选择使用 pytz。因此,您应该:

  • 确保您在 Django使用 pytz。
  • 确保你有 pytz 的 2013d 更新。

如果您还没有提出支持事件,您还应该向 Amazon 提出支持事件。他们确实应该掌握其操作系统上的 IANA TZDB 更新。

于 2013-09-11T18:38:37.630 回答
1

@YardenST:AWS 只需要知道请求是由您签署的,并在您端进行了正确的时区转换。您的服务器软件需要正确处理时区到 UTC 的转换。如果您无法修复服务器的时间,那么dcro的想法是正确的。

马特约翰逊说:

如果您还没有提出支持事件,您还应该向 Amazon 提出支持事件。他们确实应该掌握其操作系统上的 IANA TZDB 更新。

是的,但YardenST从未说过他在 EC2 上运行 Amazon Linux。如果他是,那么是的,那将是要做的事情。但是话又说回来,您对 EC2 服务器具有 root 访问权限,因此更新软件包仍然是用户问题。

于 2013-09-12T05:50:00.703 回答