S3错误:请求时间与当前时间之间的差太大


118

我有错误调用方法amazons3.ListObjects时,请求时间和当前时间之间的差异太大。

ListObjectsRequest request = new ListObjectsRequest() {
    BucketName = BucketName, Prefix = fullKey 
}; 
using (ListObjectsResponse response = s3Client.ListObjects(request))
{
    bool result = response.S3Objects.Count > 0;

    return result;
}

可能是什么?

Answers:


160

您本地机器上的时间与当前时间不同步。同步系统时钟,问题将消失。


那就对了。从错误消息中找出来。如果您想知道如何在远程计算机或云上查找本地时间,请使用Internet查找当前时间。timeanddate.com :)
user_v 2012年

1
我遇到了同样的错误。请告诉我如何执行同步
斯塔斯

38
我梦想有一天错误消息更加直接,“您的服务器时间设置不正确”对我来说很好。
adamdport 2014年

2
时区设置无关紧要。重要的是当前设置时间的准确性。
2014年

1
在澳大利亚,我们只是进入了夏令时(提前1小时),现在就抛出此错误。我的时钟是正确的。似乎是AWS中的错误。
路加福音

72

对于使用这些流浪汉,一个vagrant halt接着vagrant up为我工作。


62

时钟不同步。

我按照这篇文章中的步骤使它再次工作,但还必须运行以下命令。

sudo ntpdate ntp.ubuntu.com
sudo apt-get install ntp

如果任何时候您收到一条消息,指出NTP套接字仍在使用中,请使用停止它,sudo /etc/init.d/ntp stop然后重新运行命令。


3
谢谢!像魅力一样工作。:)
NightMICU

是的,这解决了我的问题。如果您没有apt-get,请改用yum: sudo yum install ntp -y
Shougo Makishima

1
工作了 不过,我只需要sudo ntpdate ntp.ubuntu.com在服务器上运行即可。
spnkr


15

如果有人使用Laravel和Homestead找到了这个,只需运行

homestead halt

其次是

homestead up

而且您很乐意再去一次。


15

对于在Windows中使用Docker的用户,请尝试在Settings-> Reset-> Restart Docker中重新启动Docker Engine。


这不是答案。可能有一些评论。
hB0

8

正如其他人所说,您的本地时钟与AWS不同步。您可以直接使用NTP 使其与Amazon服务器同步,因此您不必担心现在将来的时钟漂移。

注意:以下说明适用于* nix用户。我已经添加了有关您在Windows中的操作方式的评论,但是作为非Windows用户,我无法验证其准确性。

  1. 要安装NTP,只需根据您的分布选择以下之一:

    apt-get install ntp
    

    要么

    yum install ntp 
    

    等等

  2. 将NTP配置为使用亚马逊服务器,如下所示:

    vim /etc/ntp.conf
    

    在其中,注释掉默认服务器并添加以下服务器:

    server 0.amazon.pool.ntp.org iburst
    server 1.amazon.pool.ntp.org iburst
    server 2.amazon.pool.ntp.org iburst
    server 3.amazon.pool.ntp.org iburst
    
  3. 然后重启ntp服务:

    sudo service ntp restart
    

来源:https : //www.allcloud.io/how-to/how-to-fix-amazon-s3-requesttimetooskewed/

关于保持您的时间与NTP同步的更一般的文章:https : //www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-12-04


C:\ Users \ User> apt-get install ntp'apt-get'无法识别为内部或外部命令,可操作程序或批处理文件。
st78

apt-get是某些Linux发行版的软件包安装程序。对于Windows,您可以在线搜索以找到同步到NTP的最佳方法。下面是我发现win10的引用:tenforums.com/tutorials/...,这里是一个用于Windows服务器:support.microsoft.com/en-us/help/816042/...
凯尔查达


4

如果您在Windows 10的localhost中存在此问题

自动设置时间为ON并自动设置时区为 我解决了这个问题。

在此处输入图片说明


3

这也可能是由于使用async / await与任务外部的请求对象的构造以及任务内部对AWS的实际调用而引起的。如果有许多任务在运行,并且任务未及时安排,或者有其他操作延迟了对AWS的实际调用,则可能会引发此异常。



1

如果您使用的是VirtualBox,则进入虚拟机的时间将与真实计算机的时间同步。只是将时间修复到虚拟机中将无法解决问题。



1

如果在Windows中收到此错误,请按照以下步骤解决问题。.更改本地时间设置:
步骤1:单击更改日期和时间设置
步骤2:从弹出的日期和时间窗口中单击Internet时间选项卡
步骤3:接下来,单击“ 更改设置”,然后单击
步骤4:从“服务器”下拉列表中选择time.nist.gov访问此网站,然后单击
步骤5:单击“确定”。

重新启动控制台并检查。有用...


0

使用ntp可能无法在基于Linux的服务器的所有版本上运行(例如,不再受支持的过时Ubuntu服务器版本,如果尚未安装ntp,则会阻止您下载)。

如果是这种情况,则可以为Linux VM设置独立的时区:https : //community.rackspace.com/products/f/25/t/650

完成此操作后,您可能需要重设时间/日期。本文中提供了执行此操作的说明:http : //codeghar.wordpress.com/2007/12/06/manage-time-in-ubuntu-through-command-line


0

如果您在2016年,并且在伊斯坦布尔,这是一个奇怪的情况,那就是土耳其决定不改用冬季标准,将您当地的时区设置为莫斯科,然后重新启动机器。


我认为这应该是一条评论。
BlackVegetable

@BlackVegetable我也认为这可能是一条评论,但问题是,如果您处于我提到的情况下,并且要按照接受的答案中的说明进行操作,它将无法解决。这就是为什么这是提供替代解决方案的答案。
奥马尔法鲁克Almalı

0

我遇到了使用Docker for Mac Beta通道1.13.1-beta42在MacOS上运行Jet(Codeship)和Terraform的问题。

Failed to read state: Error reloading remote state: RequestTimeTooSkewed: The difference between the request time and the current time is too large.
status code: 403, request id: 9D32BA2A5360FC18

这是通过重新启动Docker解决的。


0

我刚刚开始遇到此错误,并且同步时钟无济于事。(我花了2个小时将其同步到我能找到的每个时间服务器上,包括AWS服务器,但没有任何区别。)

一年前,2017年12月31日开始确实发生了同样的事情。在这种情况下,重新启动系统并重建服务器(使用aws java sdk)修复了该问题。我不知道为什么 我认为AWS具有某些年终时区特性。在执行这些操作时,AWS时间服务器也有可能自行修复。我没有办法检验这个假设。

现在,同一件事突然在2018年12月30日开始发生。在年底时还不对,但足够接近以至于令人怀疑。(除这些日期外,从未出现此错误。)这次重新引导和重建无济于事。

我在此框上的开发环境是Parallels下的Windows 10。我的系统上的其他任何事物都没有改变-因为我已经通过回滚到以前的Parallels快照进行了仔细检查。我的主机MacOS和虚拟Windows 10上的时钟均正确。

我怀疑是一个AWS错误。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.