2014-11-13 211 views
0

我与Amazon S3AWS SDK for PHP工作。上传文件是否有文件大小限制?是否存在同步文件上传限制?上传到AWS S3限制

它给了我很多的这些错误,当我尝试一次发送20个文件有200MB我斗:

RequestTimeTooSkewedException:AWS错误代码:RequestTimeTooSkewed, 状态代码:403,AWS请求ID:0CE24AEDE4162AC9,AWS错误类型: 客户端,AWS错误消息:请求时间与 之间的差值当前时间过大。

RequestTimeoutException:AWS错误代码:将requestTimeout,状态代码: 400,AWS请求ID:913367E51F2BC5AD,AWS错误类型:客户,AWS 错误消息:套接字连接到服务器并没有从 读取或写入内超时期限。空闲连接将关闭 。

或者问题是在我的代码或PHP?

回答

1

看起来你的网络连接可能不够快,无法上传一个镜头大小的文件。 RequestTimeTooSkewedException由于helloV提到的不同步时钟,可能会发生错误。但是,如果上传时间过长,请求签名的时间和请求完成的时间可能会超过15分钟,这也会导致此错误。我怀疑这可能会发生,因为第二个错误RequestTimeoutException最有可能发生,因为您与S3的连接速度太慢。

您也需要一个更好的连接,或者你应该考虑使用多上传API。有助手此:http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-s3.html#uploading-large-files-using-multipart-uploads

1

截至目前的大小限制为5 TB,你的200MB距离最大尺寸很好。

问题是您的本地盒子的系统时钟不同步。与NTP服务器同步或手动设置,问题将消失。

对于第二个错误,有可能你指定的文件大小比实际尺寸更大。如果您的文件大小为200MB,则可能在API中传递的值大于200MB。

0

这是给这个错误?

<Error><Code>RequestTimeTooSkewed</Code><Message>The difference between the requ 
est time and the current time is too large.</Message><RequestTime>Wed, 08 Apr 20 
15 11:50:58 GMT</RequestTime><ServerTime>2015-04-07T11:51:03Z</ServerTime><MaxAl 
lowedSkewMilliseconds>900000</MaxAllowedSkewMilliseconds><RequestId>255BFB2CF336 
1F0D</RequestId><HostId>DlpwnpVVH9aQku8qD8sAaO6tFCBlrfr9P2Sl3jbBd7FKXbzsJ1SJAwqR 
OsNf+2qdSSKElK3mbus=</HostId></Error> 

错误的,你可以看到请求时间和服务器时间是不同的,它必须是相同的。所以请检查您的本地电脑时间和日期。