我将在不久的将来推出一个应用程序,它将部分地要求用户上传文件(图像)以供其他成员查看。我喜欢S3的想法,因为它相对便宜并且可以自动缩放。
我的问题是如何让用户将他们的图像上传到S3。似乎有一些选择。
1-使用php REST API。唯一的问题是我不能让它同时上传同一图像的各种缩放版本(即缩略图)并将它们直接上传到s3(它一次只能用于一个图像)。总的来说,它似乎不太灵活。
2-另一种选择是使用s3fs挂载S3存储桶。然后就像我用NFS一样以编程方式将我的图像移动到存储桶中。从我所看到的,似乎有些人怀疑安装S3的可靠性。这是真的吗?
http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=fuse+over+amazon
哪种方法对于最大可靠性和速度更好?
EBS会被考虑吗?我真的希望有一个专用的盒子,而不是使用EC2实例,但是......
答案 0 :(得分:1)
对于您的用例,我建议直接使用S3 API,而不是因为性能而使用s3fs。请记住,s3fs只是S3 API上的另一个层,它对该API的使用并不总是最适合您的应用程序。
为了处理缩略图的创建,我建议使用Amazon Simple Queue Service将其与主上传过程分离。这样,一旦文件上传,您的用户就会收到响应,而不必等待处理,从而缩短响应时间。
至于使用EBS,这是一个不同的场景。 EBS只是Amazon EC2实例的持久存储,它的可靠性与S3不相上下。
同样重要的是要记住,S3只提供“最终一致性”,而不是机器上的物理硬盘或EC2上的EBS实例,因此您需要对应用进行编码才能正确处理。