云图推送服务

云图同步服务是一个用于将设备采集到的云图数据同步到您自己的平台或者其他平台的服务。

您可以登录到雷登云平台的系统管理 → 云图配置 → 同步配置 → 同步服务管理, 将您的 HTTP 服务配置到雷登云平台中, 然后新增设备绑定,绑定后的设备将会自动同步云图数据到您的服务器中。

需要在您的服务器上部署一套文件上传服务,可以是 HTTP 或者 FTP 服务。在本文档中, 将会介绍如何快速部署 HTTP 或 FTP 服务。

自部署 HTTP 服务

环境要求: python3.9+

  1. 安装依赖
python  -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple uploadserver
  1. 启动服务

注意: 请确保 uploaded 目录存在

python -m uploadserver -d ./uploaded 3000
  1. 开放防火墙端口

如果是 Windows 上, 则需要手动开放入栈端口, 如果是 CentOS 8 上, 需要手动开启防火墙端口。

sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
sudo firewall-cmd --reload
  1. 测试服务

通过 curl 测试服务

curl -v -F "files=@./1.png" http://127.0.0.1:3000/upload
  1. 配置设备同步服务

您可以登录到雷登云平台的系统管理 → 云图配置 → 同步配置 → 同步服务管理, 将您的 HTTP 服务配置到雷登云平台中, 然后新增设备绑定,绑定后的设备将会自动同步云图数据到您的服务器中。

自部署 FTP 服务

环境要求: python3.9+

  1. 安装依赖
python  -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyftpdlib
  1. 准备 FTP 服务脚本
#!/usr/bin/env python3
# FTP 服务: 端口 12606, 匿名可读写, 支持公网访问
import os
import sys

from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer

# --------------------------------- configuration ---------------------------------
PUBLIC_IP = "172.26.95.113"          # ← 公网 IP 地址
PASSIVE_PORTS = range(60000, 60100)  # ← FTP 被动模式数据端口, 与防火墙放行范围保持一致
FTP_PORT = 12606
# ---------------------------------------------------------------------------------

DIR = os.path.abspath(sys.argv[1] if len(sys.argv) > 1 else "./uploaded")
os.makedirs(DIR, exist_ok=True)

authorizer = DummyAuthorizer()
# 权限说明
#   e - 更改目录(CWD)
#   l - 列出文件(LIST、NLST、MLSD)
#   r - 从服务器检索文件(RETR)
#   a - 追加数据到现有文件(APPE)
#   d - 删除文件或目录(DELE、RMD)
#   f - 重命名文件或目录(RNFR、RNTO)
#   m - 创建目录(MKD)
#   w - 将文件存储到服务器(STOR、STOU)
#   M - 更改文件模式(SITE CHMOD)
#   T - 更改文件修改时间(MFMT)
authorizer.add_anonymous(DIR, perm='elradfmwMT')

handler = FTPHandler
handler.authorizer = authorizer
handler.masquerade_address = PUBLIC_IP
handler.passive_ports = PASSIVE_PORTS

server = FTPServer(('0.0.0.0', FTP_PORT), handler)
server.serve_forever()
  1. 启动服务
python ftp_server.py ./uploaded
  1. 开放防火墙端口

如果是 Windows 上, 则需要手动开放入栈端口, 如果是 CentOS 8 上, 需要手动开启防火墙端口。

sudo firewall-cmd --zone=public --add-port=12606/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=public --add-port=60000-60100/tcp --permanent
sudo firewall-cmd --reload
  1. 测试服务

Window 自带的 FTP 客户端可以测试服务, 示例如下


E:\>ftp
ftp> open 172.26.95.113 12606
连接到 172.26.95.113。
220 pyftpdlib 2.2.0 ready.
530 Log in with USER and PASS first.
用户(172.26.95.113:(none)): anonymous
331 Username ok, send password.
密码:

230 Login successful.
ftp> lcd E:\
目前的本地目录 E:\。
ftp> mkdir test
257 "/test" directory created.
ftp> cd test
250 "/test" is the current directory.
ftp> put 1.png
200 Active data connection established.
125 Data connection already open. Transfer starting.
226 Transfer complete.
ftp: 发送 6305061 字节,用时 0.03秒 242502.35千字节/秒。
ftp> ls
200 Active data connection established.
125 Data connection already open. Transfer starting.
1.png
226 Transfer complete.
ftp: 收到 10 字节,用时 0.00秒 10000.00千字节/秒。
ftp> bye
221 Goodbye.

E:\>
  1. 配置设备同步服务

您可以登录到雷登云平台的系统管理 → 云图配置 → 同步配置 → 同步服务管理, 将您的 HTTP 服务配置到雷登云平台中, 然后新增设备绑定,绑定后的设备将会自动同步云图数据到您的服务器中。