添加对 PyPI 的支持,包括配置示例、缓存策略和集成测试

This commit is contained in:
2025-11-14 13:11:02 +08:00
parent 39ebf61572
commit 9444531e3b
7 changed files with 340 additions and 28 deletions

View File

@@ -8,14 +8,14 @@ Phase 1 的 HTTP 服务与磁盘缓存能力详见 [`specs/002-fiber-single-prox
- 构建 Fiber HTTP 服务 + Host 驱动(共享 `ListenPort`)的 Hub Registry使 `docker.hub.local``npm.hub.local` 等域名在同一端口内路由到独立上游。
- 实现 `StoragePath/<Hub>/<path>` 目录下的磁盘缓存,依靠文件 `mtime` + 上游 `HEAD` 请求完成动态标签的再验证。
- 提供 Docker/NPM 示例配置、quickstart、测试桩运行 `go test ./tests/integration` 即可验证代理/缓存流程。
- 提供 Docker/NPM/PyPI 示例配置、quickstart、测试桩运行 `go test ./tests/integration` 即可验证代理/缓存流程。
随着 Phase 1 推进,`cmd/any-hub` 将接入 server/cache/quickstart 章节,便于复用 Phase 0 的配置与日志骨架。
## ListenPort 与凭证迁移指南
1. **全局端口**:在配置全局段声明 `ListenPort = <port>`,所有 Hub 共享该端口;旧的 `[[Hub]].Port` 字段已弃用,`any-hub --check-config` 会在检测到遗留字段时直接失败。
2. **Hub 类型**:为每个 `[[Hub]]` 添加 `Type = "docker|npm|go"`,驱动日志中的 `hub_type` 字段并预留协议特定行为;非法值会被校验阻断。
2. **Hub 类型**:为每个 `[[Hub]]` 添加 `Type = "docker|npm|go|pypi"`,驱动日志中的 `hub_type` 字段并预留协议特定行为;非法值会被校验阻断。
3. **可选凭证**:如需突破上游限流,成对提供 `Username`/`Password`。CLI 仅在这两个字段同时出现时注入 Basic Auth并在日志中输出掩码形式的 `auth_mode=credentialed`
4. **验证命令**:使用 `any-hub --check-config --config ./config.toml` 快速确认迁移是否完成,成功时日志会显示 `listen_port``hub_type` 等字段。