3.4 KiB
3.4 KiB
数据执行模型
核心原则:数据永不离开本地。 gis-actions 运行在用户自己的机器上。所有数据处理都在用户本地完成,文件不上传到云端。
执行架构
用户本地机器
┌─────────────────────────────────────────────────────┐
│ │
│ gis-actions(本地执行器) │
│ ┌─────────────────────────────────────────┐ │
│ │ │ │
│ │ docker run --rm gis-base + 套件脚本 │ │
│ │ ┌────────────────────────────────┐ │ │
│ │ │ /data/input.shp(只读挂载) │ │ │
│ │ │ /tmp/output/(写入挂载) │ │ │
│ │ │ /tmp/scripts/(脚本包,只读) │ │ │
│ │ └────────────────────────────────┘ │ │
│ └─────────────────────────────────────────┘ │
│ │
│ 用户数据文件(原始) → ??不动 → 结果文件 │
│ /home/user/data.shp /tmp/output/ │
│ ↓ │
│ 拿走使用 │
└─────────────────────────────────────────────────────┘
↑ 只拉脚本包,不拉数据
│
suites.mercator.cn(套件市场)
什么被上传,什么不
| 类别 | 是否上传 | 说明 |
|---|---|---|
| 用户数据文件(SHP/GeoJSON/TIFF...) | ❌ 不上传 | 始终在用户本地 |
| 执行结果 | ❌ 不上传 | 留在用户的输出目录 |
| 套件脚本包 | ✅ 下载到本地 | 从市场拉取执行脚本 |
| 基础镜像 | ✅ 拉取一次 | gis-base 镜像缓存在本地 Docker |
| 任务参数(文件路径、数值) | ✅ 上传 | 仅元数据,不是文件内容 |
为什么这样设计
- 数据安全:敏感 GIS 数据不离开组织网络
- 合规:涉密、保密数据无需担心云端存储合规问题
- 性能:大数据集(GB 级影像/点云)不通过网络传输
- 知识产权:套件脚本包用完即销毁,用户拿到的是结果不是源码
对终端用户的影响
- 需要安装 Docker(一次性)
- 需要安装 gis-actions(一次性)
- 需要能访问
suites.mercator.cn(网络条件) - 提供本地文件路径,不是上传文件
对套件开发者的影响
- 脚本通过参数接收文件路径,不是文件内容
- 本地测试路径 ≠ 用户路径,脚本要用参数化路径而非硬编码
- 输出必须写入
output_path,由 gis-actions 决定输出目录位置 - 不要假设文件系统结构,用户文件和容器文件系统是隔离的