6859846b7c
- bootstrap 失败恢复 SSH 临时登录回退 - ssh_bootstrap 真安装检测与 config 目录自愈 - axs Gitea 发布源切换为 https://axs.kuma1xn.vip
1.6 KiB
1.6 KiB
打包投递:tar 覆盖解压 + 宝塔签名下载通道
日期:2026-06-21
摘要
- 解压 tar 时加
--overwrite,修复404.html: Cannot open: File exists。 - 源机已配置宝塔 API 时,打包投递改走宝塔官方
/download?filename=…签名 URL(B 机直拉 A 机面板),不经 Nexus 中转;效果等同自动化「下载」,不是 UI 右键分享外链(该接口无公开 API)。
动机
- 站点目录已有文件时默认 tar 拒绝覆盖。
- 用户希望用宝塔下载能力;分享
/down/{token}无 token API,签名/download为可自动化等价方案。
涉及文件
| 路径 | 说明 |
|---|---|
server/infrastructure/btpanel/file_urls.py |
signed_download_url |
server/application/services/server_file_transfer_service.py |
_extract_archive_on_server、_deliver_via_btpanel_download |
tests/test_btpanel_file_urls.py |
签名 URL 单测 |
tests/test_server_file_transfer.py |
覆盖解压 / 宝塔投递分支 |
前提
- 源机
extra_attrs.bt_panel已配置且 API IP 白名单允许 B 机公网 IP 访问面板端口。 - 未配置宝塔 API 时仍走 Nexus
transfer-download原流程。
验证
pytest tests/test_btpanel_file_urls.py tests/test_server_file_transfer.py -q
打包投递至已有文件的站点目录,应覆盖成功。
回滚
去掉 bt_panel 分支与 --overwrite,重启 API。
补充(2026-06-21)
宝塔面板 HTTPS 多为自签证书;B 机 curl 下载签名 URL 时,当源机 verify_ssl=false(默认)自动加 curl -k,与 Nexus 连面板行为一致。