add # 新增对资源文件的维护
@@ -10,3 +10,5 @@ RUST_LOG=farm_service=info
|
||||
# FARM_ASSET_MANIFEST=./assets/manifest.json
|
||||
# Optional: independent Xiaolai font archive, including the complete OFL license.
|
||||
# FARM_FONT_MANIFEST=./fonts/manifest.json
|
||||
# Optional: crop catalogue latest plus all immutable history; reload by restart.
|
||||
# FARM_CATALOGUE_DIR=./catalogue
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
- `GET /v1/assets/{sha256}/assets.zip`:下载启动时校验过的素材快照,支持ETag。
|
||||
- `GET /v1/fonts/manifest.json`:独立字体资源清单。
|
||||
- `GET /v1/fonts/{sha256}/assets.zip`:原版小赖字体与完整 OFL 许可,支持 ETag。
|
||||
- `GET /v1/catalogue/manifest.json`:独立作物目录的最新完整版本。
|
||||
- `GET /v1/catalogue/releases/{release}/{file}`:公开只读历史目录文件,支持 ETag。
|
||||
- [作物数据、图片维护与不可变发布步骤](docs/catalogue.md);正式来源为
|
||||
`catalogue/source/`,机器人启动时检查更新。
|
||||
- [资源分发接口与三端接入约定](docs/assets.md)。
|
||||
- 素材发布文件位于根目录 `assets/manifest.json` 和 `assets/assets.zip`;
|
||||
ZIP 仅由本服务仓库发布,三个插件分发包不包含 ZIP。
|
||||
@@ -68,6 +72,7 @@ cargo run --locked
|
||||
| `RUST_LOG` | `farm_service=info` |
|
||||
| `FARM_ASSET_MANIFEST` | 可选,建议 `./assets/manifest.json`;同目录须有assets.zip;未设置时资源接口返回503 |
|
||||
| `FARM_FONT_MANIFEST` | 可选,设为 `./fonts/manifest.json`;同目录须有 assets.zip;未设置时字体接口返回503 |
|
||||
| `FARM_CATALOGUE_DIR` | 可选,设为 `./catalogue`;启动校验最新及全部历史版本,未设置返回503;更新后重启生效 |
|
||||
|
||||
相对目录以进程工作目录为基准;生产建议使用固定绝对路径。
|
||||
`.env.example` 只是模板,程序**不会自动加载 .env**。
|
||||
@@ -129,6 +134,8 @@ Invoke-RestMethod -Uri "http://127.0.0.1:8080/v1/users/qq/12345678" `
|
||||
cargo fmt --check
|
||||
cargo test --locked --all-targets
|
||||
cargo clippy --locked --all-targets -- -D warnings
|
||||
python -m unittest discover -s tests -p test_prepare_catalogue.py
|
||||
python scripts/prepare_catalogue.py --version catalogue-20261026-1 --check
|
||||
```
|
||||
|
||||
测试覆盖鉴权、资料校验、昵称更新、重启持久化、平台隔离、并发建档、
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
.publish.lock
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"files": {
|
||||
"assets.zip": {
|
||||
"sha256": "78d6e8e448fd5296b21d471b98ea7d58c81ef78a82b0e192a1ed041bb5fddad9",
|
||||
"size_bytes": 21264561
|
||||
},
|
||||
"land-soils.zip": {
|
||||
"sha256": "e27151f0b92c36842c23d9bf3d4855e786ef5a9db37c736e751b53be8d3ebda9",
|
||||
"size_bytes": 57889
|
||||
},
|
||||
"metadata.json": {
|
||||
"sha256": "6ba1c2134d1a853cd4c2bfd6489e68bd59a0c6068cd79289a1f4bcaa62f2444d",
|
||||
"size_bytes": 197449
|
||||
},
|
||||
"plants.json": {
|
||||
"sha256": "e05e4430643710ccbeeeb1c7c8640ec5962ee097de6b3d5fad0fb7860c596a2b",
|
||||
"size_bytes": 87259
|
||||
}
|
||||
},
|
||||
"release": "4c88736c2e9b1b5eec4568e953152d59a6918242802da72a6eec1a615a17f18b",
|
||||
"schema": 1,
|
||||
"version": "catalogue-20261026-1"
|
||||
}
|
||||
|
After Width: | Height: | Size: 879 KiB |
|
After Width: | Height: | Size: 676 KiB |
|
After Width: | Height: | Size: 110 KiB |
|
After Width: | Height: | Size: 217 KiB |
|
After Width: | Height: | Size: 177 KiB |
|
After Width: | Height: | Size: 87 KiB |
|
After Width: | Height: | Size: 138 KiB |
|
After Width: | Height: | Size: 984 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 912 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 537 KiB |
|
After Width: | Height: | Size: 107 KiB |
|
After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 160 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 487 KiB |
|
After Width: | Height: | Size: 541 KiB |
|
After Width: | Height: | Size: 89 KiB |
|
After Width: | Height: | Size: 158 KiB |
|
After Width: | Height: | Size: 134 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 172 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 659 KiB |
|
After Width: | Height: | Size: 119 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 783 KiB |
|
After Width: | Height: | Size: 529 KiB |
|
After Width: | Height: | Size: 105 KiB |
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 146 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 129 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 16 KiB |