php - 如何让 Amazon s3 PHP SDK 工作?

标签 php amazon-s3 amazon-web-services

我第一次尝试设置 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 存储桶创建和上传工作?

最佳答案

将您的 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

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

关于php - 如何让 Amazon s3 PHP SDK 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10943115/

相关文章:

swift - 使用 Swift3 将图像上传到 Amazon S3

python - 在 AWS S3 中指定 IAM 角色的权限

amazon-web-services - 由于hadoop用户 `File '/var/aws/emr/userData.json无法读取到ssh到胶开发端点

php - JavaScript 正则表达式不适用于 PHP

java - 从亚马逊检索产品信息和产品评论

amazon-web-services - Lambda S3 getObject流到ES接收管道

amazon-web-services - 在 C# 中使用 AWS 开发工具包无法使用 AWS SNS 发送文本消息

php - 在 PHP 中不推荐在类内部调用非静态方法?

php - 如何在布局/默认中设置 Controller 和模型以在所有页面中加载

php - Laravel morphTo 返回 Null