You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复AWS RequestTimeTooSkewed错误:请求时间与当前时间差值过大

解决AWS S3 RequestTimeTooSkewed错误的方案

这个问题我碰到过好多次了,本质是你的服务器(或者运行代码的环境)时间和AWS服务器的时间差超过了15分钟,AWS的安全校验机制会直接拒绝这种请求,给你几个靠谱的解决办法:

1. 强制同步服务器时间

这是最直接有效的办法,AWS要求客户端与服务端的时间偏差不能超过15分钟,所以先把服务器时间对齐到标准NTP服务器:

  • Linux系统:用chrony或者ntpd服务同步,执行以下命令:
    # 启动chrony服务(未安装先执行:sudo yum install chrony / sudo apt install chrony)
    sudo systemctl start chronyd
    # 强制同步时间
    sudo chronyc -a makestep
    # 查看同步状态,确保"Leap status"显示正常
    sudo chronyc tracking
    
  • Windows系统:打开「日期和时间」设置,勾选「自动设置时间」,或者用命令行强制同步:
    w32tm /resync
    

2. 确认时区配置正确性

有时候时间数值是对的,但时区配置错误也会导致时间戳偏差(AWS服务默认使用UTC时区):

  • 检查服务器时区:Linux用timedatectl,Windows用tzutil /g
  • 确保应用代码中没有硬编码非UTC的时间,或者在AWS SDK配置中明确指定UTC时间(大部分SDK会自动处理,但时区错误可能干扰系统时间读取)

3. 排查自定义时间配置(如果有)

如果你在代码里手动设置过请求时间,或者修改过AWS SDK的时间相关参数,一定要恢复默认的「自动获取系统时间」设置——硬编码时间或者错误的时间偏移都会触发这个错误。

4. 容器/无服务器环境的特殊处理

  • 如果是Docker容器部署:容器的时间默认同步宿主机,先确保宿主机时间正确,必要时可以在容器启动时挂载宿主机的时间文件:-v /etc/localtime:/etc/localtime:ro
  • 如果是Lambda函数:一般不用手动处理,AWS会维护Lambda运行环境的时间,但如果是自定义运行时,要确保运行时的时间同步正常

临时测试小技巧:可以先手动把服务器时间调整到当前UTC时间(搜一下「当前UTC时间」就能查到),然后重新执行PutObject操作,验证是否解决问题,确认是时间问题后再配置自动同步服务。

内容的提问来源于stack exchange,提问作者Seio. E.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:08:11