直接上传到S3或通过EC2?

n.e*_*ind 11 django amazon-s3 amazon-ec2 amazon-web-services

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

  1. 客户端> S3:我直接从iPhone上传文件到S3(使用AWS SDK)
  2. 客户端> EC2> S3:我将文件上传到我的服务器(EC2上运行的Django),然后服务器上传文件到S3(详见该职位)

我不打算以任何方式修改文件.我只需要告诉数据库添加一个条目.因此,如果我要上传文件Client> S3,我还是需要连接到服务器才能进行数据库输入.

似乎 EC2> S3不会花费任何东西,只要两者在同一区域.

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

rea*_*ers 15

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

而是将GUID返回给客户端,上传到S3,并将密钥设置为GUID并适当地设置Content-Type.然后在上载完成后调用Web服务/ Ajax端点以使用GUID密钥创建DB记录.

  • 我刚刚遇到了完全相同的问题,但我想知道安全性,对于任何人来说,上传/检索不通过网关的东西是不是很容易?我认为黑客可以从应用程序获取密钥到 s3 存储(即使它只是一个有限的存储)并上传/检索他想要的所有内容,也许可以通过基于到期的检索 url 停止检索,但是上传呢?谢谢(在这个问题上真的很迷茫) (2认同)