使用Amazon S3 php REST API vs.将S3 bucket挂载到服务器(s3fs)


Using Amazon S3 php REST API vs. Mounting S3 bucket to server (s3fs)

我将在不久的将来启动一个应用程序,它将在一定程度上要求用户上传文件(图像)以供其他成员查看。我喜欢S3的想法,因为它相对便宜并且可以自动扩展。

我的问题是如何让用户将他们的图像上传到S3。似乎有几个选择。

1-使用php REST API。唯一的问题是,我不能让它的工作,同时上传不同比例的版本(即缩略图)的同一图像,并将它们直接上传到s3(它只适用于一个图像在同一时间这种方式)。总的来说,它似乎不够灵活。

http://net.tutsplus.com/tutorials/php/how-to-use-amazon-s3-php-to-dynamically-store-and-manage-files-with-ease/

2—另一种选择是使用s3fs挂载S3 bucket。然后以编程方式将我的图像移动到bucket中,就像使用NFS一样。据我所知,似乎有些人对挂载S3的可靠性持怀疑态度。这是真的吗?

http://www.google.com/search?sourceid=chrome& ie = UTF-8& q =保险丝+在+亚马逊

哪一种方法更能获得最大的可靠性和速度?

你会考虑EBS吗?我真的希望有一个专用的盒子,而不是使用EC2实例,尽管…

对于您的用例,出于性能考虑,我建议直接使用S3 API而不是使用s3fs。请记住,s3fs只是S3 API之上的另一层,它对该API的使用并不总是最适合您的应用程序的。

要处理缩略图的创建,我建议通过使用Amazon Simple Queue Service将其与主上传过程解耦。这样,您的用户将在文件上传后立即收到响应,而不必等待文件被处理,从而缩短响应时间。

对于使用EBS,这是一个不同的场景。EBS只是Amazon EC2实例的持久存储,它的可靠性无法与S3相比。

同样重要的是要记住,S3只提供"最终一致性",而不是机器上的物理硬盘或EC2上的EBS实例,所以你需要编码你的应用程序来正确处理。