如何创建可以从 IOS(swift) 应用程序连续接收数据的 AWS 服务器?

How do I create an AWS server that could recieve data continously from an IOS(swift) app?

我正在尝试编写一个 IOS 应用程序,并且已经为该应用程序指定了一个 ec2 服务器。我想知道应用程序如何将图像数据发送到服务器。 ec2 服务器会持续接收来自所有使用该应用程序的用户的传入图像数据。然后服务器将处理数据。它类似于 Instagram 等应用程序所做的事情,但当然不会如此大规模。

我是客户端-服务器通信的初学者,想知道如何将其实现到我的应用程序中。我也不经常使用堆栈溢出,所以如果您需要更多信息,请告诉我我是否做错了什么。

更具体地说,用户会 post 应用中的图像。我目前已经设置了一个 ec2 服务器来接收该图像。我希望用户 post 的所有图像都被传送、处理,然后存储在 ec2 服务器中。有没有办法处理实际的数据传递。这个问题有点宽泛,因为我想知道去哪里看。我是否必须编写一个在后台不断 运行 并在某个端口接收数据的脚本?我可以使用其他服务来处理这个问题吗?

嗯,简单地说,如果您有许多用户同时发送图像,您将在 EC2 上使用 运行 时遇到问题。

考虑在 AWS 上设置 API Gateway <-> Lambda <-> DynamoDB or S3。然后您的客户端可以 POST images/data 通过 HTTP 请求到您的网关。

首先,您必须决定您的数据是流式传输(从服务器连续推送)还是存储(根据需要从服务器拉取)。您提供的 Instagram 示例表明您不需要 real-time 流数据。

流媒体解决方案更复杂,通常可能需要网络套接字(或 AWS IoT)等技术来完成。存储解决方案会简单得多。

对于存储,您可以选择使用像 EC2 这样的平台创建和管理服务器(您需要多个服务器来扩展到许多用户),或使用托管 'serverless' 技术,如 Lamba,您只需要提供代码。为了方便起见,权衡通常是价格。

对于图像存储,典型的模式是创建包含基础图像(以及任何元数据)的 S3 URL 的数据库记录。您可以使用您选择的任何服务器技术创建此数据库记录并上传您的文件; Lambda 可能需要 API Gateway 服务器,但请记住,AWS SDK 可以直接调用 Lambda 函数。