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

st7*_*t78 98 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;
}
Run Code Online (Sandbox Code Playgroud)

可能是什么?

Mar*_*p51 135

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

  • 我梦想有一天错误消息更直接,"您的服务器时间设置不正确"对我来说会很好. (32认同)
  • 我也遇到过同样的错误。请告诉我如何进行同步 (3认同)
  • 在澳大利亚,我们刚刚进入夏令时(提前 1 小时),现在正在抛出此错误。我的时钟是正确的。似乎是 AWS 中的一个错误。 (3认同)
  • 时区设置无关紧要.这是当前设定时间的准确性,这很重要. (2认同)

Cza*_*ino 66

对于那些使用Vagrant的人来说,vagrant halt后来vagrant up为我工作.


man*_*ire 59

时钟不同步.

我按照这篇文章中的步骤重新开始工作,但也必须运行以下命令.

sudo ntpdate ntp.ubuntu.com
sudo apt-get install ntp
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢!工作就像一个魅力.:) (2认同)

小智 22

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


Cit*_*zen 14

如果有人发现这是使用Laravel和Homestead,只需运行

homestead halt
Run Code Online (Sandbox Code Playgroud)

其次是

homestead up
Run Code Online (Sandbox Code Playgroud)

你很高兴再去.


小智 10

对于那些在Windows中使用Docker的用户,请尝试在Setting-> Reset-> Restart Docker中重新启动Docker Engine.


use*_*125 10

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

检查日期:

date
Run Code Online (Sandbox Code Playgroud)

现在运行:

sudo apt install ntpdate 
sudo ntpdate  time.nist.gov
Run Code Online (Sandbox Code Playgroud)

输出示例:

18 Feb 14:27:36 ntpdate[24008]: step time server 132.163.97.4 offset 1009.140848 sec
Run Code Online (Sandbox Code Playgroud)

再次检查日期:

date
Run Code Online (Sandbox Code Playgroud)


pho*_*box 6

这在 OSX 上正确重置了我的系统时钟。现在在本地开发中使用 JS SDK 上传 S3 对我有用

ntpdate us.pool.ntp.org
Run Code Online (Sandbox Code Playgroud)

在此处阅读更多相关信息


Jam*_*mes 6

这也可能是由于在任务外部使用 async/await 构建请求对象以及在任务内部实际调用 AWS 造成的。如果有很多任务在运行并且任务没有及时调度,或者有一些其他操作延迟了对 AWS 的实际调用,则可能会抛出此异常。


luc*_*wxp 6

2021 答案:

AWS.config.update({
    accessKeyId: 'xxx',
    secretAccessKey: 'xxxx',
    correctClockSkew: true
});
Run Code Online (Sandbox Code Playgroud)


Kyl*_*dha 5

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

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

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

    apt-get install ntp
    
    Run Code Online (Sandbox Code Playgroud)

    要么

    yum install ntp 
    
    Run Code Online (Sandbox Code Playgroud)

    等等

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

    vim /etc/ntp.conf
    
    Run Code Online (Sandbox Code Playgroud)

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

    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
    
    Run Code Online (Sandbox Code Playgroud)
  3. 然后重启ntp服务:

    sudo service ntp restart
    
    Run Code Online (Sandbox Code Playgroud)

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


Atu*_*iya 5

如果您的 Windows 10 本地主机出现此问题

自动设置时间和自动设置时区 这解决了我的问题。

在此输入图像描述


som*_*pnd 5

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

sudo hwclock -s
Run Code Online (Sandbox Code Playgroud)

或者

wsl --shutdown 
Run Code Online (Sandbox Code Playgroud)

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