我正在使用dokku托管一个rails应用程序,该应用程序使用aws-s3SDK-gem将文件上传到s3。当我试图将文件上传到服务器时,它会在日志中给我以下错误:
Aws::S3::Errors::RequestTimeTooSkeed(请求时间和当前时间之间的差异太大。):
S3存储桶在us-east-1中,而我的服务器上的时区设置为芝加哥时区。
日期Mon Mar 21 23:33:33 CDT 2016
当我跟踪dokku日志时,它会以UTC格式显示时间:
2016-03-22T04:28-39.425196210Z产品[web.2]:我,〔2016-03-22TO4:28-39.422140#154〕信息--:工人=2准备好
如何在dokku和操作系统之间同步时间?我的操作系统需要与S3时间同步吗?如果是这样,则不存在芝加哥时区S3桶。
/etc/时区
America/Chicago
/etc/localtime符号链接到/usr/share/zoneinfo/America/Cchicago
最佳做法是将所有服务器时钟设置为UTC,以避免时间转换的一些特殊性——然而,时区设置不应该是问题所在。
S3不在铲斗位置的本地时间上运行。它在UTC上运行。
如果您看到的UTC时间戳相对于系统时间是正确的,那么服务器上的时区设置应该无关紧要。
该错误表示时钟偏斜,这通常意味着几分钟太快或太慢,因为您没有将服务器时钟与外部时间参考同步,通常使用ntpd
。
对此进行验证。