2012-12-20 146 views
1

上传图像时PHP将临时图像存储在服务器上的本地服务器上。php临时文件上传目录 - 关闭本地服务器

是否有可能更改此临时位置,使其脱离本地服务器。

原因:使用没有粘性会话的负载平衡,我不希望文件上传到一台服务器,然后在另一台服务器上无法使用。注意:我没有必要一次性完成文件上传并处理文件。

首选的临时位置应该是AWS S3 - 也只是有兴趣知道这是否可能。

如果它不可能,我可以使文件上传一个完整的过程,也将完成的文件放在最后的位置。

只是想知道如果PHP临时映像/文件位置可以关闭本地服务器?

三江源

回答

1

您可以在您的ELB下的Instances上安装S3存储桶s3fs,以便您的所有上传在应用程序服务器之间共享。关于/ tmp,请不要触摸它,因为目标是S3并且它是共享的 - 您不必担心。

如果你有很多上传,S3可能是瓶颈。在这种情况下,我建议设置NAS。就个人而言,我使用GlusterFS,因为它扩展性好,而且非常容易设置。它有复制问题,但您可能根本不使用复制卷,并且您没有问题。

另一个替代方案是CephSector/SphereXtreemFSTahoe-LAFSPOHMELFS和许多其他...

1

您可以直接从客户端上传文件到S3与在这篇文章中详述了一些新的技术:

http://www.ioncannon.net/programming/1539/direct-browser-uploading-amazon-s3-cors-fileapi-xhr2-and-signed-puts/

否则,我个人会建议使用每台服务器的tmp文件夹正是这个 - 临时存储。将文件放在服务器上后,您可以始终上传到S3,然后在所有负载均衡服务器上访问该S3。

+0

+1。值得一提的是:“所有这一切都已经到位,您现在应该可以使用支持CORS,XHR2和FileAPI的浏览器直接上传到S3(目前几乎所有的东西都是IE)。” – Flavius

+1

“几乎所有东西,但IE目前”。每个Web开发人员职业生涯的故事;) –

相关问题