1

上传图像时,PHP 将临时图像存储在服务器的本地文件中。

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

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

首选的临时位置是 AWS S3 - 也只是想知道这是否可能。

如果不可能,我可以让文件上传一个完整的过程,同时将完成的文件放在最终位置。

只是想知道 PHP 临时图像/文件位置是否可以不在本地服务器上?

谢谢你

4

2 回答 2

1

您可以使用本文中详细介绍的一些新技术将文件从客户端直接上传到 S3:

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

否则,我个人会建议使用每个服务器的tmp文件夹来实现这一点——临时存储。文件在您的服务器上后,您始终可以上传到 S3,然后可以在所有负载平衡服务器上访问。

于 2012-12-20T00:59:20.440 回答
1

您可以在 ELB 下的实例上使用s3fs挂载 S3 存储桶,以便在应用程序服务器之间共享您的所有上传。关于 /tmp,不要碰它,因为目的地是 S3 并且它是共享的 - 你不必担心。

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

另一种选择是CephSector/SphereXtreemFSTahoe-LAFSPOHMELFS等等......

于 2012-12-20T01:23:31.653 回答