Skip to content

数据分发

数据分发功能允许您将设备上传的数据转发到指定的目标。目前支持两种数据分发方式:PostData和MongoDB存储。

PostData 配置

当有新的数据上传时,系统会通过 HTTP POST 请求将数据转发到您配置的 URL。

配置说明

  1. URL: 接收数据的服务器地址
  2. 密钥(Secret Key): 用于验证请求的密钥

请求验证

为了确保数据的安全性,系统使用Bearer Token认证方式。每个请求的Header中都会包含认证信息:

{
    'Authorization': 'Bearer your-secret-key',
    'Content-Type': 'application/json'
}

您需要在服务器端验证请求头中的Bearer Token是否匹配您配置的密钥。

Python示例代码:

python
def verify_request(request, expected_secret_key):
    auth_header = request.headers.get('Authorization')
    if not auth_header:
        return False
        
    try:
        # 提取Bearer Token
        scheme, token = auth_header.split()
        if scheme.lower() != 'bearer':
            return False
            
        # 验证token
        return token == expected_secret_key
    except ValueError:
        return False

JavaScript示例代码:

javascript
function verifyRequest(request, expectedSecretKey) {
  const authHeader = request.headers.get('Authorization');
  if (!authHeader) {
    return false;
  }
  
  try {
    const [scheme, token] = authHeader.split(' ');
    if (scheme.toLowerCase() !== 'bearer') {
      return false;
    }
    
    return token === expectedSecretKey;
  } catch (error) {
    return false;
  }
}

测试连接

您可以通过"发送测试数据"按钮来验证配置是否正确。系统会发送一个测试数据到您配置的URL,您可以通过检查签名来验证请求的真实性。

MongoDB 配置

系统支持将数据直接存储到MongoDB数据库中。

配置说明

  1. MongoDB URI: MongoDB连接字符串,格式如:
    mongodb://username:password@host:port/database
  2. 集合名称: 数据将被存储到指定的集合中

注意事项

  1. 请确保MongoDB URI中包含了正确的访问凭证
  2. 指定的数据库用户需要有写入权限
  3. 每个组织只能配置一个MongoDB连接

测试连接

配置完成后,您可以使用"测试连接"按钮验证MongoDB连接是否正常。系统会尝试连接到指定的数据库并执行一次测试写入操作。

数据格式

无论是PostData还是MongoDB存储,数据格式都保持一致:

json
{
    "device_id": "设备ID",
    "timestamp": "数据上传时间",
    "data": {
        // 设备上传的具体数据
    }
}