简体中文

文件传输(上传,下载)协议设计(公版参考版)

星空无限传媒xk8027-高清全集免费看

一、角色分析

文件传输流程中核心分为「发送端」和「接收端」,角色定义取决于数据流向,具体适配场景如下:
(一)角色定义
  • 发送端:数据提供方(可是APP或设备端);
  • 接收端:数据接收方(可是APP或设备端)。
(二)API选择建议
针对摄像头类产品,需根据已集成的API框架选择文件传输实现方式:
  1. 已集成 AVAPIsRDTAPIs(模块区别可参考:P2P SDK简介):直接基于对应AVAPIs或者RDTAPIs实现文件传输功能(本文档重点讲解);
  2. 已集成 P2PTunnelAPIs:通过「P2PTunnelAPIs + HTTP/FTP」实现,详细参考以下文档:

二、基于AVAPIs的文件下载

基于AVAPIs的文件下载(点击详情)适用于已集成AVAPI框架的产品,对接复杂度中等,弱网环境下效能表现优秀,是推荐的文件传输方案之一。
核心特性
  • 设备端缓存区默认大小:每个通道256KB(可调整,如有调整,需同时调增客户端的buffer大小,建议客户端buffer大小为设备端的4倍);
  • 每包数据大小:建议2~10KB(不超过缓存区大小即可,相关内容:公版AV帧信息定义);
  • 可靠性:需检查API返回值(如 avSendFrameData),返回 -20006 时需重新发送该数据包。

三、基于AVAPIs的文件上传

当前公版文档暂未提供基于AVAPIs的文件上传详细实现流程,如需开发可参考文件下载逻辑,核心需注意:
  1. 保持发送端/接收端角色反转(APP作为发送端,设备作为接收端);
  2. 严格遵循文件名格式规范(不带路径、包含正确扩展名);
  3. 正确设置 endFlag(仅最后一个文件的最后一包设为1)。
说明:上传功能需结合设备端接收逻辑自定义开发,确保文件数据完整性校验和存储适配。

四、基于RDTAPIs的文件下载

基于RDTAPIs的文件下载(点击详情)适用于对传输灵活性要求较高的场景,需自行处理数据打包、数据切包逻辑,对接复杂度高于AVAPIs。
核心特性
  • 设备端缓存区大小:无限制(仅受设备RAM容量约束);
  • 帧结构定义:无限制(可根据实际场景自定义,相关内容:公版RDT帧定义);
  • 关键要求:设备端需自行打包包头和数据,APP端需对应实现切包和包头解析逻辑。

五、基于RDTAPIs的文件上传

当前公版文档暂未提供基于RDTAPIs的文件上传详细实现流程,核心开发要点:
  1. 遵循RDT协议的包头格式规范,自定义数据分片策略;
  2. 发送端需确保数据包顺序一致性,接收端需处理乱序、丢包场景;
  3. 参考下载逻辑中的通道调度策略,保障上传效率。

六、常见问题

1. 是否支持断点续传?
公版APP不支持断点续传功能,如需实现可自行开发:
  • APP端维护下载表,记录文件名、已下载位置、文件总大小等信息;
  • 断点续传时,从已下载位置开始请求剩余数据,设备端对应返回分片数据。
2. 设备端的下载通道数及文件调度逻辑如何设计?
通道数和调度逻辑由设备端自定义设计,公版协议不做绑定限制,常见设计方案:
  • 按文件类型分通道:视频、图像、声音分别通过不同通道发送;
  • 动态负载均衡:设备端可以根据传输文件数量,以及设备资源情况,自行定义开启的通道数;
  • 核心原则:确保文件信息和数据完整传输,无额外限制。
3. 目前支持哪些类型的文件?
公版协议不对文件类型做限制,理论上支持所有类型文件,需满足以下条件:
  • 设备端发送文件名时必须携带正确扩展名(如 .txt.mp4.jpg 等);
  • 手机系统需支持对应文件的解析(否则仅能保存文件,无法直接打开)。
4. 对接需要注意哪些问题?
  1. API返回值检查:发送端需校验 avSendFrameData 等API返回值,返回 -20006 时需重新发送该数据包;
  2. endFlag 设定:仅最后一个文件的最后一包数据的 endFlag 设为1,其余均为0;
  3. RDT协议特殊处理:设备端需自行打包包头和数据,APP端需对应实现切包和包头解析;
  4. 通道关闭时机:发送完最后一包数据后,需检查发送缓存区是否有未发送完成的数据,确认无残留后再关闭通道;
  5. 文件名规范:文件名不带路径,必须包含正确的扩展名。

七、AVAPIs和RDTAPIs文件传输对比

对比选项AVAPIsRDTAPIs
对接复杂度一般(无需自定义打包/切包)较高(需自行实现包头打包、数据切包)
弱网效能高(内置优化的重传和抗丢包机制)较AVAPIs低(需自行处理弱网场景)
设备端缓存区默认大小每个通道256KB(可调整,建议≤1MB)不限制(仅受设备RAM容量约束)
每包数据大小建议2~10KB(不超过缓存区大小)不限制(可自定义)
选择建议:
  • 优先选择 AVAPIs:弱网环境、对接效率要求高、无需复杂自定义场景;
  • 选择 RDTAPIs:需灵活调整传输策略、对数据包大小无限制、需自定义包头解析场景。

即刻开启您的物联网之旅

联系解决方案专家
Kalay App
资讯安全白皮书
全球专利布局
解决方案
新闻动态
公司动态
行业资讯
媒体报道
永续发展
经营者的话
社会参与
环境永续
公司治理

+86 755 27702549

7×24小时服务热线

法律声明 隐私权条款

关注“TUTK”

TUTK服务尽在掌握

© 2022 星空无限传媒xk8027版权所有粤ICP备14023641号
在线咨询
扫一扫

TUTK服务尽在掌握

全国免费服务热线
+86 755 27702549

返回顶部