Networking 照片流上传协议

Networking 照片流上传协议,networking,protocols,Networking,Protocols,在这个*聊天应用程序和各种消息软件的时代,我想知道是否已经有了遵循以下基本流程的官方协议(RFC): 客户端连接到服务器以进行新会话 客户端将带有元数据信息(大小、分辨率、格式)的图像(或视频)上载到服务器 服务器执行一些工作(不是协议的一部分) 服务器回复拒绝,然后客户端转到1 服务器使用ACCEPT进行回复,然后客户端停止并收集结果作为服务器回复的一部分 我现在有了一个专有的解决方案,它可以处理基本格式(支持基本格式),我们知道,问题出在细节上,所以我想知道一些现有的协议是否会覆盖流格式以及

在这个*聊天应用程序和各种消息软件的时代,我想知道是否已经有了遵循以下基本流程的官方协议(RFC):

  • 客户端连接到服务器以进行新会话

  • 客户端将带有元数据信息(大小、分辨率、格式)的图像(或视频)上载到服务器

  • 服务器执行一些工作(不是协议的一部分)
  • 服务器回复拒绝,然后客户端转到1
  • 服务器使用ACCEPT进行回复,然后客户端停止并收集结果作为服务器回复的一部分

  • 我现在有了一个专有的解决方案,它可以处理基本格式(支持基本格式),我们知道,问题出在细节上,所以我想知道一些现有的协议是否会覆盖流格式以及这个简单的设计可能遗漏的更多不愉快的路径。

    我不知道有任何协议可以为您处理文件探测

    ffprobe是一个很好的开源解决方案,但需要处理能力和规模

    所以这一步必须在上传后在服务器端完成。您不能信任客户提供此类信息

    我建议采用云方法。这里,我们使用的是亚马逊云

    将文件上载到AWS S3。您可以使用多部分上传来加快上传速度。不需要缩放任何东西,AWS将为您完成。 您的客户端只需从web服务器请求一个签名URL。服务器返回此新资产的URL和ID。您的客户端使用URL上传到AWS S3

    上传完成后,您的客户机再次打电话给您的服务器,说:“我已经用资产ID完成了。”。您的服务器知道资产现在已上载,可以启动代码转换、分析、数据库更新等

    我们在项目中就是这样做的。 对于大规模的代码转换,我们使用我们自己的开源项目:

    这不是一件容易的事情,特别是如果你想处理视频

    如果你把自己限制在图片上,那么在用户端可以做很多事情。您可以在JS中创建多个版本的图像,例如直接在浏览器中或在移动应用程序中,然后将其上载到服务器。负载要小得多,您可能不需要这种解耦的体系结构

    如果你处理视频,你需要一个坚实的后端

    希望这有帮助