【问题标题】:Should I upload files to Amazon S3 from mobile devices or from my server?我应该从移动设备还是从我的服务器将文件上传到 Amazon S3?
【发布时间】:2015-01-26 17:57:37
【问题描述】:
我将 Amazon S3 作为我的文件存储服务器,并将 EC2 实例作为我的应用程序逻辑服务器。现在我的应用需要上传一些需要处理的文件。我可以想到两种方法来做到这一点:
直接从移动设备上传文件并获取文件名和位置(url),然后将url发送到我的后端。后端通过 URL 获取文件并完成其工作。
使用多部分表单将文件发送到后端,后端接受文件并完成其工作,最后将文件保存到 Amazon S3。
标准方法是什么?原因是什么?
【问题讨论】:
标签:
mobile
amazon-web-services
amazon-ec2
amazon-s3
file-sharing
【解决方案1】:
将对象直接发送到 Amazon S3 将更具可扩展性、更不容易出错且更便宜(因为您需要更少的 Web 服务器容量来处理上传)。将相应的信息发送到后端服务可以监控和处理的Simple Queuing Service (SQS) 队列。这样,如果您的后端一直处于脱机状态,则作业将简单地排队并在服务器再次运行时得到处理。很好地利用了松散耦合。
第三种选择是将文件直接从您的手机发送到 Amazon S3,使用元数据字段来识别原始用户,然后配置 S3 存储桶以触发 AWS Lambda 中可以处理文件的一些代码。这可以完成所有处理,或者可以简单地触发您的 Web 服务器上的进程。同样,这减少了 Web 服务器上的负载,并且不需要发送消息来触发处理。