请求OSS资源提示“The difference between the request time and the current time is too large”错误

问题描述

请求阿里云对象存储OSS中的资源时,提示以下错误:

[ResponseError]: RequestTimeTooSkewed The difference between the request time and the current time is too large.

问题原因

请求发起的时间超过OSS服务器当前时间15分钟,OSS判定该请求无效,返回报错。

解决方案

请检查发送请求设备的系统时间,并根据时区调整到正确时间。发送请求的机器或设备的系统时间调整标准如下:

  • OSS的系统时间采用GMT时间,您的设备的系统时间需要调整到GMT时间,或与其相对应的时区时间。GMT是零时区的区时,即世界标准时间。

    • Windows系统查看时区的方法:单击控制面板>时钟和区域>设置时间和日期。 例如,时区栏的+08:00表示您的设备系统时区是东八区。

    • LinuxUnix系统查看时区的方法:执行date -R查看时间和时区。

      说明

      下图中的+0800表示您的设备系统时区是东八区。

      +0800

  • 支持在多个地域使用OSS。每个地域都使用GMT时间,您发送请求的设备系统时间也是GMT时间。

  • 下面是WindowsLinux系统修改时区到GMT时区的方法。

    重要

    注意:在服务器上更改时区可能会影响运行的服务和应用程序,因此在生产环境中应谨慎操作。更改系统时区后,建议重启计算机或至少重启相关服务以确保新设置生效。

Windows系统

  1. 打开控制面板,查找并进入到日期和时间或时钟和区域设置。

  2. 点击更改日期和时间按钮,然后点击更改时区。

  3. 从下拉菜单中,找到并选择(UTC) 协调世界时或者任何列为GMT的时区,例如(UTC+00:00) 默罗维亚, 雷克雅未克

  4. 确认更改,然后关闭控制面板。

在较新版本的Windows中,你也可以通过点击任务栏右下角的时间然后选择日期和时间设置,在设置中更改时区。

image

Linux系统

Linux系统中,你可以使用命令行来更改时区。具体步骤可能会因发行版而异。以下示例用的是比较通用的命令:

  1. 打开终端。

  2. 输入以下命令以查找合适的GMT时区:

timedatectl list-timezones | grep GMT
  1. 找到合适的GMT时区后,设置系统时区为相应的GMT时区,例如:

   sudo timedatectl set-timezone GMT

image

适用于

  • 对象存储OSS