2

我正在尝试第一次设置 s3 并尝试运行 PHP sdk 附带的示例文件,该文件创建一个存储桶并尝试将一些演示文件上传到它。但这是我得到的错误:

The difference between the request time and the current time is too large.

我读到关于 SO 的另一个问题,这是因为亚马逊通过比较服务器和客户端之间的时间来确定有效请求,即 2 必须在 15 分钟的范围内。

现在问题来了。我的笔记本电脑的时间是12:30AM June 8, 2012此刻。在我的服务器上,我创建了一个名为 servertime.php 的文件并将此代码放在该文件中:

<?php
   print strftime('%c');
?>

输出是:

Fri Jun 8 00:31:22 2012

看起来日子是正确的,但我不知道该怎么做00:31:22。无论如何,如何始终确保客户端和服务器之间的时间在彼此 15 分钟的窗口内。如果我在中国有一个用户希望在我的网站上上传一个文件,该文件使用 s3 作为 cdn。那么时差将超过一天。如何确保所有用户的时间都在我的服务器时间的 15 分钟内?如果用户在美国,但他们机器上的时间配置错误怎么办。

基本上如何让 s3 存储桶创建和上传工作?

4

1 回答 1

4

将您的 EC2 实例和 S3 存储桶放在同一区域内,并确保您的服务器具有正确的时间:

Debian/Ubuntu

// install ntp
apt-get install ntp ntpdate

CentOS/Fedora

// install ntp
yum install ntp

// turn on service
chkconfig ntpd on

// synchronize system clock with 0.pool.ntp.org server
ntpdate pool.ntp.org

// start ntp
/etc/init.d/ntpd start

那应该可以解决您的问题。

于 2012-06-08T09:43:52.097 回答