d54dbf72c9
原实现在 Controller 内 openStream 边读边写把整个对象代理给客户端,改为 ResponseEntity.status(FOUND).location(直链) 后:① 请求线程立即释放(实测响应 从"随下载时长占用"降到 ~10ms);② 直链支持 Range,save_file_from_url_new 的 断点续传才真正生效。前端本就优先用 item.downloadUrl 直链、该接口仅兜底且客户端 保存名由前端传入不依赖响应头,故无需前端改动。补一条重定向 info 日志便于排查。