我获得不同的结果与一些PHP码我写的文件上传到S3然后打电话给EC2实例,以执行行动上传文件。

这里是为我做的东西-

1)使用S3流放文件

$result = s3 -> putObjectFile($uploadDIR, $bucket, $name, S3::ACL)

2)检查$结果

if($result == "1") {
//file made it to s3

3)使用的卷曲呼叫EC2实例和执行行动的文件在S3

我用这个视频文件,当我上传一个小型的视频文件,它的工作确定(例如3MB),但对于较大的视频(例如80MB)的代码似乎没有让过去的步骤1。该文件被移动到s3确定,但我的猜测是,经过一段时间PHP提供了在等待,看看如果$result==1,所以不执行其余的代码。

什么是最好的方式来处理像这样的东西?我怎么可以检测到的文件已上载到S3,然后进行一些代码时,它有?

有帮助吗?

解决方案

大文件所需的时间上传他们可能会高于剧本 max_execution_time.

你可以只使用set_time_limit()function但它仍然可能不是一个好主意,为网页脚本时会就"挂"有没有任何用户反馈(出的浏览器)。

这可能会更好:

  1. 使用set_time_limit()使脚本不会死。
  2. 储存的文件,名称在一个临时位置(DB届会议,等等),并获得一个独特的ID它
  3. 输出一个网页,与一些阿贾克斯的代码(多次)查询的第二个脚本用于文件状态(完成、失败、不确定的?)
  4. 在原始脚本,等待行动,完成和更新数据库的结果。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top