Files
Nexus/docs/changelog/2026-06-21-server-transfer-btpanel-download-tar-overwrite.md
T
r 6859846b7c sync: 主项目全量同步(含 btpanel 一键登录回归修复与前端构建产物)
- bootstrap 失败恢复 SSH 临时登录回退
- ssh_bootstrap 真安装检测与 config 目录自愈
- axs Gitea 发布源切换为 https://axs.kuma1xn.vip
2026-07-08 23:52:40 +08:00

1.6 KiB
Raw Blame History

打包投递:tar 覆盖解压 + 宝塔签名下载通道

日期2026-06-21

摘要

  1. 解压 tar 时加 --overwrite,修复 404.html: Cannot open: File exists
  2. 源机已配置宝塔 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 连面板行为一致。