Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django AWS与以色列时间不同步,导致安全错误_Django_Amazon Web Services_Amazon S3_Clock_Django Storage - Fatal编程技术网

Django AWS与以色列时间不同步,导致安全错误

Django AWS与以色列时间不同步,导致安全错误,django,amazon-web-services,amazon-s3,clock,django-storage,Django,Amazon Web Services,Amazon S3,Clock,Django Storage,连接AWS服务时 今年在以色列,冬季时钟的变化推迟了大约两个月 但是亚马逊似乎不知道,所以如果以色列的正确时间是下午14:00,亚马逊的时间是下午13:00 这种情况会导致对服务的每个请求都失败(特别是S3) 选择1是亚马逊修复它,但这可能需要时间 选项2是手动更改服务器上的时间,使 请求 但是,在我的例子中,这是不可能的,因为服务器是一个VM,我没有更改时间的特权 还有别的办法解决这个问题吗?在连接amazon服务时,以某种方式更改服务器上的时间 我使用django with django

连接AWS服务时

今年在以色列,冬季时钟的变化推迟了大约两个月

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

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


  • 选择1是亚马逊修复它,但这可能需要时间

  • 选项2是手动更改服务器上的时间,使 请求

  • 但是,在我的例子中,这是不可能的,因为服务器是一个VM,我没有更改时间的特权

    还有别的办法解决这个问题吗?在连接amazon服务时,以某种方式更改服务器上的时间


    我使用django with django storages(boto)与S3连接

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

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

    以色列的时区变化在2013d版本的。在Python中,这是通过实现的

    根据,Django可以选择使用pytz。因此,你应该:

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

    如果您还没有向Amazon提出支持事件,那么您也应该向Amazon提出支持事件。他们真的应该掌握IANA TZDB在其操作系统上的更新情况。

    以色列的时区变化在2013d版本的。在Python中,这是通过实现的

    根据,Django可以选择使用pytz。因此,你应该:

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

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

    @YardenST:AWS只需要知道请求是由您签署的,并且您端有正确的时区转换。服务器的软件需要正确处理时区到UTC的转换。如果您不能确定服务器的时间,那么您的想法是正确的

    他说:

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


    是的,但从未说过他在EC2上运行AmazonLinux。如果他是,那么是的,那就是应该做的事。但是,同样,您拥有EC2服务器的root访问权限,因此更新软件包仍然是一个用户问题。

    @YardenST:AWS只需要知道请求是由您以正确的时区转换签署的。服务器的软件需要正确处理时区到UTC的转换。如果您不能确定服务器的时间,那么您的想法是正确的

    他说:

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


    是的,但从未说过他在EC2上运行AmazonLinux。如果他是,那么是的,那就是应该做的事。但话说回来,您拥有对EC2服务器的root访问权限,因此更新软件包仍然是一个用户问题。

    我没有使用EC2。在调查该问题时,我发现我的服务器没有返回正确的GMT时间(日期--utc),这可能是导致错误的原因,因为这是boto向amazon发送请求时使用的时间。我没有使用EC2。在调查该问题时,我发现我的服务器没有返回正确的GMT时间(日期--utc),这可能是导致错误的原因,因为这是boto向amazon发送请求时使用的时间。如何修补代码以修复此问题?代码会很好,但也会有一个指导建议:在boto
    HmacAuthV1Handler
    类中覆盖
    add\u auth
    方法(原始代码位于
    auth.py
    ),并调整代码
    标题['Date']=formatate(usegmt=True)
    以补偿时差。如何修补代码以解决此问题?代码会很好,但也会有一个指导建议:在boto
    HmacAuthV1Handler
    类中覆盖
    add_auth
    方法(原始代码位于
    auth.py
    ),并调整代码
    标题['Date']=formatdate(usegmt=True)
    ,以补偿时间差。