【问题标题】:AWS S3 upload fails: RequestTimeTooSkewedAWS S3 上传失败:RequestTimeTooSkewed
【发布时间】:2014-11-15 20:28:32
【问题描述】:

我正在使用

aws s3 同步 ~/folder/ s3:// --delete

将大量文件上传(和同步)到 S3 存储桶。一些(但不是全部)文件失败,抛出此错误消息:

上传失败:到 s3://bucketname/folder/ 调用UploadPart操作时出现客户端错误(RequestTimeTooSkewed):请求时间与当前时间相差太大

我知道这个错误的原因通常是与 Internet 时间不同步的本地时间,但我正在运行 NTP(在我的 Ubuntu PC 上)并且日期/时间似乎绝对准确 - 这个错误只有到目前为止,我已上传了大约 40 个文件,其中大约有 15 个被报告。 一些文件相对较大——每个文件最大约 70MB——而且我的上传速度也不是很好:S3 是否可能会比较初始时间和完成时间并将它们的差异报告为错误? 谢谢,

【问题讨论】:

  • 上传需要多长时间并不重要,因为 S3 仅使用 Date(或 x-amz-date)标头来比较时间,它不依赖于上传完成时间。

标签: amazon-web-services amazon-s3


【解决方案1】:

时间验证发生在您开始上传到 S3 时,因此它与上传时间过长的文件无关。

尝试将您的系统时间与 S3 报告的时间进行比较,看看是否有任何不必要的时间漂移​​,以确保:

# Time from Amazon
$ curl http://s3.amazonaws.com -v

# Time on your local machine
$ date -u

(时间以UTC返回)

【讨论】:

  • 谢谢。我只休息了两秒钟……那就是一个接一个地运行这两个命令。
  • 面对这个问题,使用 Homestead laravel 与 vagrant 的差异大约是 15 分钟:O .... vagrant halt 和 vagrant up 之后似乎工作正常... 我的一个小辈不得不重新启动为他工作的电脑。
【解决方案2】:

现在看来,AWS s3 上的分段上传失败了。改用 s3cmd 效果很好。

【讨论】:

    【解决方案3】:

    您必须在您的机器上同步本地时间。时间已超出世界时间。

    【讨论】:

    • 重新启动虚拟机对我有用。不知道为什么它没有同步,但可能是在暂停机器而不是关闭机器时发生这种情况?
    【解决方案4】:

    我在 MacBook Pro 上的 docker 容器内运行 aws s3 cp 并收到此错误。重新启动 Docker for Mac 修复了这个问题。

    【讨论】:

      【解决方案5】:

      Amazon S3 使用 NTP 作为其系统时钟,以与您的时钟同步。 运行

      sudo apt-get install ntp

      然后打开/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
      

      然后运行

      sudo service ntp restart

      【讨论】:

      • 完美运行。一个小点 - 我必须使用sudo service ntp restart
      【解决方案6】:

      我在 MacOS 上遇到了问题。 我修复了它 偏好 -> 日期和时间 -> 勾选“自动设置日期和时间”

      【讨论】:

        猜你喜欢
        • 2021-10-26
        • 2017-04-12
        • 1970-01-01
        • 2021-04-20
        • 2018-12-31
        • 2017-08-16
        • 1970-01-01
        • 2019-12-01
        • 2015-09-12
        相关资源
        最近更新 更多