直接上传到S3或通过EC2?

时间:2012-02-19 10:22:02

标签: django amazon-s3 amazon-ec2 amazon-web-services

我想为iPhone应用程序构建一个Web服务。至于文件上传,我想知道标准程序和最具成本效益的解决方案是什么。据我所知,有两种可能性:

  1. 客户端> S3:我直接从iPhone上传文件到S3(使用AWS SDK
  2. 客户端> EC2> S3:我将文件上传到我的服务器(运行Django的EC2),然后服务器将文件上传到S3(详见post
  3. 我不打算以任何方式修改文件。我只需要告诉数据库添加一个条目。所以,如果我要上传文件Client> S3,我还是需要连接到服务器才能进行数据库输入。

    It seems,好像EC2>只要两者在同一地区,S3就不会花费任何费用。

    在开始实施文件上传之前,我很想知道优点和缺点。

1 个答案:

答案 0 :(得分:15)

出于可伸缩性的原因,我肯定会通过S3完成它。确实,S3和EC2之间的数据快速且便宜,但上传时间很长,与普通网络请求不同。因此,您可能会在EC2实例上使NIC饱和。

相反,将GUID返回给客户端,上传到S3,并将密钥设置为适当的GUID和Content-Type。然后在上载完成后调用Web服务/ Ajax端点以使用GUID密钥创建数据库记录。