【问题标题】:Front controller freezes when uploading file to amazon s3将文件上传到 amazon s3 时,前端控制器冻结
【发布时间】:2013-09-06 14:40:34
【问题描述】:

我有一个 Symfony 应用程序,它接收一个 .zip 文件,将其解压缩,然后将所有图像上传到 Amazon S3(使用 PHP SDK 2),效果很好。

问题是在上传时我不能再使用前端控制器了,它必须等到它完成上传。如果我使用 app_dev.php 上传,则在上传完成之前,我无法访问基于该前端控制器的任何 url,app.php 请求工作正常。

有什么办法可以绕过这个限制吗?我用来上传的代码是

$client->putObject(array(
    'Bucket' => $this->container->getParameter('aws_bucket'),
    'Key' => $someKey,
    'Body' => fopen($somePath, 'r+'),
));

一种解决方案可能是,创建另一个控制器并使用它来处理上传,但它仍然一次只能处理一个上传...

提前致谢。

【问题讨论】:

    标签: php symfony amazon-s3


    【解决方案1】:

    我认为您的会话正在锁定。在任何长进程之前关闭会话。

    $this->get('session')->save();
    

    【讨论】:

    • 不会注销用户吗?我将如何关闭会话?请原谅我的无知,但我对 Symfony 还不是很有经验。
    • 不,它只会写入会话文件并关闭它。我认为应该是 $this->get('session')->save();我也没有 symfony2 的经验,我仍然坚持使用 1.4 版
    • 啊,我知道了,现在我检查了,我可以用另一个浏览器访问就好了,看起来确实是会话锁定。谷歌搜索我可以找到如何做到这一点:“$session->save(); session_write_close();”非常感谢!
    • $session->save() 应该已经执行 session_write_close() 了,至少在文档中是这样的:)
    猜你喜欢
    • 2017-07-23
    • 1970-01-01
    • 2019-12-10
    • 2013-09-09
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 2011-07-21
    相关资源
    最近更新 更多