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

时间:2011-01-22 21:15:16

标签: amazon-s3

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

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

    return result;
}

它可能是什么?

26 个答案:

答案 0 :(得分:124)

本地邮箱上的时间与当前时间不同步。同步系统时钟,问题就会消失。

答案 1 :(得分:62)

对于使用Vagrant的用户,vagrant up后跟[root@xxxx bin]# npm install -g sinopia --python=/usr/local/clo/ven/python-2.7.11/bin/python > crypt3@0.1.8 install /usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/sinopia/node_modules/crypt3 > node-gyp rebuild gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/4.2.3" gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/sinopia/node_modules/crypt3/.node-gyp" make: Entering directory `/usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/sinopia/node_modules/crypt3/build' CXX(target) Release/obj.target/crypt3/crypt3.o cc1plus: error: unrecognized command line option "-std=gnu++0x" make: *** [Release/obj.target/crypt3/crypt3.o] Error 1 make: Leaving directory `/usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/sinopia/node_modules/crypt3/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23) gyp ERR! stack at emitTwo (events.js:87:13) gyp ERR! stack at ChildProcess.emit (events.js:172:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12) gyp ERR! System Linux 2.6.18-406.el5 gyp ERR! command "/usr/local/clo/ven/node-v4.2.3-linux-x64/bin/node" "/usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/sinopia/node_modules/crypt3 gyp ERR! node -v v4.2.3 gyp ERR! node-gyp -v v3.0.3 gyp ERR! not ok > fs-ext@0.4.5 install /usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/sinopia/node_modules/fs-ext > node-gyp configure build gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/4.2.3" gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/sinopia/node_modules/fs-ext/.node-gyp" make: Entering directory `/usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/sinopia/node_modules/fs-ext/build' CXX(target) Release/obj.target/fs-ext/fs-ext.o cc1plus: error: unrecognized command line option "-std=gnu++0x" make: *** [Release/obj.target/fs-ext/fs-ext.o] Error 1 make: Leaving directory `/usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/sinopia/node_modules/fs-ext/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23) gyp ERR! stack at emitTwo (events.js:87:13) gyp ERR! stack at ChildProcess.emit (events.js:172:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12) gyp ERR! System Linux 2.6.18-406.el5 gyp ERR! command "/usr/local/clo/ven/node-v4.2.3-linux-x64/bin/node" "/usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "build" gyp ERR! cwd /usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/sinopia/node_modules/fs-ext gyp ERR! node -v v4.2.3 gyp ERR! node-gyp -v v3.0.3 gyp ERR! not ok npm WARN optional dep failed, continuing crypt3@0.1.8 npm WARN optional dep failed, continuing fs-ext@0.4.5 - > dtrace-provider@0.4.0 install /usr/local/clo/ven/node-v4.2.3-linux-x64/lib/node_modules/sinopia/node_modules/bunyan/node_modules/dtrace-provider > node scripts/install.js 为我工作。

答案 2 :(得分:55)

时钟不同步。

我按照this post中的步骤重新启动它,但也必须运行以下命令。

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

如果您在任何时候收到消息说NTP套接字仍在使用中,请使用sudo /etc/init.d/ntp stop将其停止并重新运行命令。

答案 3 :(得分:20)

我遇到了同样的错误,我正在使用Docker for Mac。简单地重启Docker对我有用。

答案 4 :(得分:13)

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

homestead halt

接着是

homestead up

你再好不过了。

答案 5 :(得分:5)

在 WSL 2 或任何基于 Deb 的 Linux(Ubuntu、Mint ...)上:

检查日期:

date

现在运行:

sudo apt install ntpdate 
sudo ntpdate  time.nist.gov

输出示例:

18 Feb 14:27:36 ntpdate[24008]: step time server 132.163.97.4 offset 1009.140848 sec

再次检查日期:

date

答案 6 :(得分:5)

对于那些在Windows中使用Docker的用户,请尝试在设置中重新启动Docker引擎 - >重置 - >重新启动Docker。

答案 7 :(得分:4)

这会在OSX上正确重置我的系统时钟。使用JS SDK的S3上传现在适用于本地开发

ntpdate us.pool.ntp.org

Read more about this here

答案 8 :(得分:4)

正如其他人所说,您的本地时钟与AWS不同步。 您可以使用NTP直接将其与亚马逊的服务器同步,这样您就不必担心将来的时钟漂移。

注意:以下说明适用于* nix用户。我已经添加了一条关于如何在Windows中执行此操作的注释,但作为非Windows用户,我无法验证其准确性。

  
      
  1. 要安装NTP,只需根据您的发行版选择以下选项之一:

    apt-get install ntp
    
         

    yum install ntp 
    
         

  2.   
  3. 配置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
    
  4.   
  5. 然后重启ntp服务:

    sudo service ntp restart
    
  6.   

来源: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

答案 9 :(得分:4)

2021 答案:

AWS.config.update({
    accessKeyId: 'xxx',
    secretAccessKey: 'xxxx',
    correctClockSkew: true
});

答案 10 :(得分:3)

对于那些在 Microsoft WLS2 Ubuntu 上遇到同样问题的人,目前唯一的解决方法是:

sudo hwclock -s

wsl --shutdown 

从睡眠状态唤醒 Windows 后发生时钟偏移。请密切关注 https://github.com/microsoft/WSL/issues/5324 以获取 microsoft 的修复。

答案 11 :(得分:3)

如果Windows 10的本地主机中存在此问题

将时间设置为自动打开并自动将时区设置为打开 这解决了我的问题。

enter image description here

答案 12 :(得分:1)

如果您使用的是虚拟机,则进入虚拟机的时间将与实际机器的时间同步。只需将时间固定到虚拟机中就无法解决问题。

答案 13 :(得分:1)

如果您在 Windows 中出现此错误,请按照以下步骤解决问题。更改您当地的时间设置:
第1步:点击更改日期和时间设置
从弹出的日期和时间窗口中第2步点击互联网时间标签
第3步:下一步点击更改设置
步骤4 从服务器下拉列表中选择 time.nist.gov 或选中this website
第5步:点击“确定”

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

答案 14 :(得分:1)

这也可能是因为使用async / await来构造任务外部的请求对象以及在任务内部对AWS的实际调用。如果有许多任务正在运行且任务未及时安排,或者还有其他操作延迟了对AWS的实际调用,则可能会抛出此异常。

答案 15 :(得分:1)

要解决此问题,您必须调整客户端的时间,以便最多15分钟的时间戳差异。同时为系统设置标准时间和区域。

Check the full Detail here.

答案 16 :(得分:1)

我有此错误,因为本地计算机的时间和时区设置不正确。将它们更改为正确的时间和时区对我有用。

答案 17 :(得分:1)

Windows 10 Docker 上,我遇到了同样的问题。您应该将此命令一步一步运行

docker run --rm --privileged alpine hwclock -s
再次

docker run --rm --privileged alpine hwclock -s

最后一条命令don't forget to set your username and password and your timezone,在Docker运行时运行minIO

docker run -p 9000:9000 -e "MINIO_ACCESS_KEY=yourUserName" -e "MINIO_SECRET_KEY=YourPassword" -e "TZ=Europe/Berlin" -v /etc/localtime:/etc/localtime:ro  minio/minio server /data

答案 18 :(得分:0)

如果您正在使用虚拟机,则重新启动虚拟机仅适用于我的

答案 19 :(得分:0)

我在 Mac 上遇到了同样的问题。当我移动到不同的时区(PST 到 IST)时,不知何故 OSX 没有选择时区和时间自动更改。所以我不得不手动设置这两个,这导致我的笔记本电脑延迟了大约 15-20 秒。设置自动同步后,时间同步,S3 复制命令开始工作:For reference

答案 20 :(得分:0)

重新启动我的 Windows 服务器为我修复了它

时间与站点 time.in 的约 1 秒相同,因此它没有关闭。

答案 21 :(得分:0)

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

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

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

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

我怀疑是一个AWS错误。

答案 22 :(得分: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解决了这个问题。

答案 23 :(得分:0)

如果您在2016年和伊斯坦布尔,这是一个奇怪的情况,土耳其决定不转换到冬季时间标准,无论如何将当地时区设置为莫斯科,然后重新启动您的机器。

答案 24 :(得分: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

答案 25 :(得分:-1)

+1 @sompnd - 运行 wsl --shutdown

后,我能够在容器中执行 CLI 命令