如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
knot-cloud-storage是一个Web服务器,用于接收设备转发的消息并将其存储到数据库中。该服务目前正在用Golang重写,以适用于在受限板上运行,提供高效的设备数据管理能力。
要求
PATH环境变量:bashexport PATH=$PATH:<your_go_workspace>/bin
配置
可将ENV环境变量设置为development,并根据需要更新internal/config/development.yaml配置文件。对于Docker镜像部署,需使用环境变量进行配置。
主要配置参数如下(环境变量名称在括号中):
server
port (SERVER_PORT) 数字 服务器端口号(默认值:80)设置
bashmake tools
编译和运行
bashmake run
可使用
make watch命令以监视模式运行应用,当代码更改时自动重启服务。
确保已安装Docker Engine。
构建和运行
生产环境
生产环境容器定义在docker/Dockerfile中,使用步骤如下:
构建镜像:
bashdocker build . -f docker/Dockerfile -t cesarbr/knot-cloud-storage
创建包含环境变量配置的文件(如knot-cloud-storage.env)。
运行容器:
bashdocker run --env-file knot-cloud-storage.env -ti cesarbr/knot-cloud-storage
开发环境
开发环境容器定义在docker/Dockerfile-dev中,支持代码自动重载,使用步骤如下:
构建镜像:
bashdocker build . -f docker/Dockerfile-dev -t cesarbr/knot-cloud-storage:dev
创建包含环境变量配置的文件(如knot-cloud-storage.env)。
运行容器:
bashdocker run --env-file knot-cloud-storage.env -p 8080:80 -v `pwd`:/usr/src/app -ti cesarbr/knot-cloud-storage:dev
-v参数的第一个路径必须是仓库根目录,若从其他目录运行,请将pwd替换为实际路径。
通过访问健康检查端点验证服务状态:
bashcurl http://<hostname>:<port>/healthcheck
存储设备消息。
参数
请求头
| 字段 | 是否必需 | 描述 |
|---|---|---|
| auth_token | 是 | 用户身份验证令牌 |
请求体
| 字段 | 是否必需 | 描述 |
|---|---|---|
| data | 是 | 设备发送的消息数据,包含发送者标识和负载 |
示例
请求
bashPOST https://storage.knot.cloud/data
请求体
json{ "from": "188824f0-28c4-475b-ab36-2505402bebcb", "payload": { "sensor_id": 2, "value": 234 } }
响应
bash201 Created
获取所有设备消息。
参数
请求头
需以设备所有者身份进行身份验证:
| 字段 | 是否必需 | 描述 |
|---|---|---|
| auth_token | 是 | 用户身份验证令牌 |
URI参数
| 字段 | 是否必需 | 描述 |
|---|---|---|
| order | 否 | 排序方式:升序(1)或降序(-1),默认值=1 |
| skip | 否 | 跳过的数据数量(返回skip + 1之后的数据),默认值=0 |
| take | 否 | 获取的最大数据数量(上限100),默认值=10 |
| startDate | 否 | 数据开始日期(格式:YYYY-MM-DD HH:MM:SS) |
| finishDate | 否 | 数据结束日期(格式:YYYY-MM-DD HH:MM:SS) |
示例
请求
bashGET https://storage.knot.cloud/data?take=15&order=1
响应
json[ { "from": "188824f0-28c4-475b-ab36-2505402bebcb", "payload": { "sensorId": 2, "value": 234 }, "timestamp": "2020-04-10T10:32:26.456753-03:00" }, { "from": "188824f0-28c4-475b-ab36-2505402bebcb", "payload": { "sensorId": 1, "value": true }, "timestamp": "2020-04-13T13:56:23.596301-03:00" } ]
按特定设备ID获取消息。
参数
请求头
需以设备所有者身份进行身份验证:
| 字段 | 是否必需 | 描述 |
|---|---|---|
| auth_token | 是 | 用户身份验证令牌 |
URI参数
| 字段 | 是否必需 | 描述 |
|---|---|---|
| order | 否 | 排序方式:升序(1)或降序(-1),默认值=1 |
| skip | 否 | 跳过的数据数量(返回skip + 1之后的数据),默认值=0 |
| take | 否 | 获取的最大数据数量(上限100),默认值=10 |
| startDate | 否 | 数据开始日期(格式:YYYY-MM-DD HH:MM:SS) |
| finishDate | 否 | 数据结束日期(格式:YYYY-MM-DD HH:MM:SS) |
示例
请求
bashGET https://storage.knot.cloud/data/cc5429a29afcd158?startDate=2020-04-13 13:00:00
响应
json[ { "from": "188824f0-28c4-475b-ab36-2505402bebcb", "payload": { "sensorId": 1, "value": true }, "timestamp": "2020-04-13T13:56:23.596301-03:00" } ]
按特定设备和传感器ID获取消息。
参数
请求头
需以设备所有者身份进行身份验证:
| 字段 | 是否必需 | 描述 |
|---|---|---|
| auth_token | 是 | 用户身份验证令牌 |
URI参数
| 字段 | 是否必需 | 描述 |
|---|---|---|
| order | 否 | 排序方式:升序(1)或降序(-1),默认值=1 |
| skip | 否 | 跳过的数据数量(返回skip + 1之后的数据),默认值=0 |
| take | 否 | 获取的最大数据数量(上限100),默认值=10 |
| startDate | 否 | 数据开始日期(格式:YYYY-MM-DD HH:MM:SS) |
| finishDate | 否 | 数据结束日期(格式:YYYY-MM-DD HH:MM:SS) |
示例
请求
bashGET https://storage.knot.cloud/data/cc5429a29afcd158/sensor/2
响应
json[ { "from": "188824f0-28c4-475b-ab36-2505402bebcb", "payload": { "sensorId": 2, "value": 234 }, "timestamp": "2020-04-10T10:32:26.456753-03:00" } ]
删除所有设备消息。
参数
请求头
需以有效用户身份进行身份验证,仅删除该用户拥有的设备数据:
| 字段 | 是否必需 | 描述 |
|---|---|---|
| auth_token | 是 | 用户身份验证令牌 |
示例
请求
bashDELETE https://storage.knot.cloud/data
响应
bash200 OK
删除特定设备的所有消息。
参数
请求头
需以设备所有者身份进行身份验证:
| 字段 | 是否必需 | 描述 |
|---|---|---|
| auth_token | 是 | 用户身份验证令牌 |
示例
请求
bashDELETE https://storage.knot.cloud/data/cc5429a29afcd158
响应
bash200 OK
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务