如何将文件从 iPhone 传输到 EC2 实例或 EBS?

How to transfer files from iPhone to EC2 instance or EBS?

我正在尝试创建一个 iOS 应用程序,该应用程序会将文件从 iPhone 传输到服务器,在那里进行处理,然后 return 立即将结果发送给该应用程序.

我注意到 AWS 提供了一个 SDK 来将文件从 iOS 应用程序传输到 S3,但不能传输到 EC2(或至少传输到可以附加到 EC2 的 EBS)。我想知道为什么我必须通过 S3,当我的业务逻辑不保证文件存储时。我已经使用文件系统软件,如 s3cmd 和 s3fs 从 EC2 连接到 S3,但是它们在将文件传输到 EC2 时非常慢。我担心通过 S3 的路由会消磨时间,尤其是当用户期望瞬间得到结果时。

能否请您指导我如何绕过 S3 路由将文件从 iOS 应用程序实时传输到 EC2(或 EBS)?

允许应用程序直接写入实例文件系统是行不通的,除非将其视为网络驱动器,否则会非常复杂,更不用说您几乎肯定会遇到的安全问题。这确实是 s3 的用途。你说你看到 ec2 和 s3 之间的性能不佳,这听起来一点也不对,这将是一个内部数据中心连接,它至少比从移动设备到亚马逊数据中心的连接快几个数量级.您确定您在同一区域创建了存储桶和实例吗?或者它可能是您正在使用的客户端,不要尝试设置文件系统访问,只需使用 aws cli。

如果您真的执着于直接访问 ec2 实例的想法,您将需要通过某种网络连接来完成此操作,可以通过 运行 网络服务器,也可以使用通过 ssh 进行的各种复制如果在 ios 上可用。当 s3 已经为您完成时,设置它似乎毫无意义。最后,根据文件的大小,您可以使用 sqs 或某种数据库存储。

新手没关系!!我 运行 遇到了完全相同的处理问题并通过 运行 一系列负载平衡的网络服务器解决了它,移动设备调用上传实用程序,上传文件,处理它,然后将结果部署到s3 使用手机可以显示的签名 URL。它快速、可靠且安全。结果使用 CloudFront 进行缓存,因此一旦写入,就可以非常快速地在移动设备上重新访问。希望这可以帮助。