我正在使用Amazon S3和AWS SDK for PHP。上传文件是否有文件大小限制?是否有同步文件上传限制?
当我尝试为我的存储桶一次发送20个200MB的文件时,它给了我很多这些错误:
RequestTimeTooSkewedException:AWS错误代码:RequestTimeTooSkewed, 状态代码:403,AWS请求ID:0CE24AEDE4162AC9,AWS错误类型: 客户端,AWS错误消息:请求时间与之间的差异 目前的时间太长了。
RequestTimeoutException:AWS错误代码:RequestTimeout,状态代码: 400,AWS请求ID:913367E51F2BC5AD,AWS错误类型:客户端,AWS 错误消息:未读取与服务器的套接字连接 或写入超时期限内。空闲连接将是 闭合。
或问题出现在我的代码或PHP中?
答案 0 :(得分:1)
截至目前,尺寸限制为5 TB,您的200 MB完全在最大尺寸范围内。
问题是您的本地机箱的系统时钟不同步。与NTP服务器同步或手动设置,问题就会消失。
对于第二个错误,您可能指定的文件大小大于实际大小。如果您的文件大小为200MB,则可能会在API中传递大于200MB的值。
答案 1 :(得分:1)
您的网络连接似乎不够快,无法一次性上传大小合适的文件。由于helloV提到的不同步时钟,可能会发生RequestTimeTooSkewedException
个错误。但是,如果上载时间过长,请求签名的时间和请求完成的时间可能会超过15分钟,这也会导致此错误。我怀疑这可能会发生,因为第二个错误RequestTimeoutException
很可能发生,因为你与S3的连接太慢了。
您需要更好的连接,或者应该考虑使用分段上传API。有帮助:http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-s3.html#uploading-large-files-using-multipart-uploads
答案 2 :(得分: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>
错误中你可以看到请求时间和服务器时间不同,它必须是相同的。所以请检查您当地的电脑时间和日期。