【问题标题】:Uploading files to Amazon CloudFront instead of Amazon S3 using iphone or iPad使用 iphone 或 iPad 将文件上传到 Amazon CloudFront 而不是 Amazon S3
【发布时间】:2014-11-06 11:26:37
【问题描述】:
我可以将文件从 iPhone 上传到 Amazon S3。但是上传 100 个音频文件需要花费太多时间。所以我想用 CloudFront 来上传文件,因为亚马逊支持 PUT 请求。
您能否解释一下如何使用 iPhone 或 iPad 将音频文件上传到 Amazon CloudFront 而不是 Amazon S3?
提前致谢!!!
【问题讨论】:
标签:
iphone
ipad
amazon
amazon-cloudfront
【解决方案1】:
CloudFront 的 PUT 功能只是传递到源 - 在本例中为 S3。它旨在让您能够将 CloudFront 放在您的网站前面以提高下载速度,但仍允许您的用户将表单数据等发布到您的源服务器。您想要做的并不是真正的主要用例。
如果您尝试您想做的事情,您的移动应用程序将连接到云端服务器,该服务器在地理位置上可能稍微靠近用户,但云端服务器仍需要将数据传递给 S3 服务。
S3 的吞吐量可能远高于用户可用的移动带宽。因此,无论您是上传到 S3 还是 CloudFront,您的带宽限制都可能会受到移动网络的限制。
如果您确实想采用此选项,则需要将 CloudFront 分配中的 Authorization 标头列入白名单,以便 S3 允许您的上传请求。
但是在你走这条路之前(我再次相信这将是很多工作而回报很少),你有没有:
- 您是否确保上传到分配给您的用户最近的地理区域的 S3 存储桶?
- 您是否尝试过使用S3 MultiPart Upload?
【解决方案2】:
这可以通过与 cloudfront 类似的技术实现,称为“S3 Accelerate”。如果存储桶的区域远离上传计算机,您可以通过在存储桶上启用 S3 Accelerate 来加快上传速度,然后上传将直接通过离您最近的 Amazon 服务器,然后继续将文件从那里发送到存储桶的实际区域最优路线。
您可以通过上传到“bucketname.s3-accelerate.amazonaws.com”来使用它。你可以阅读它here。