Files
user.email 7db2cdaf55 fix(ftp): 迁移 async_ftp → suppaftp,修复 FTPS 无法通过 IP 地址直连
- 根因:async_ftp 6.0(2021 年停更)依赖 tokio-rustls 0.23 / rustls 0.20,
  其 webpki 校验器不支持 IP SAN,FTPS 主机填 IP(如 127.0.0.1)时
  TLS 握手必然失败:SecureError: presented server name type wasn't supported
- suppaftp 12 走 tokio-rustls 0.26 / rustls 0.23,IP SAN 原生支持;
  迁移后 IP 与域名主机均可 FTPS 连接
- 顺带删除 tls_client_config 中 rustls 0.23 → 0.20 的 DER 证书转换 shim
  (rustls-native-certs 0.8 输出直接可用),crate 内 rustls 版本收敛为一套
- 显式安装 ring CryptoProvider:依赖图中 rustls 同时启用 ring 与
  aws-lc-rs,进程级默认 provider 无法自动判定
- 上传/下载迁移到 TransferStream(retr_as_stream / put_with_stream +
  finish),保留原有取消唤醒、空闲超时、置毒不复用的全部安全语义;
  ftp_status_code 由字符串解析改为类型化 UnexpectedResponse
- 新增 crates/ftp/tests/real_server_smoke.rs:#[ignore] 真实服务器冒烟
  测试(env 可配),配合本地 Docker pure-ftpd 服务器验证
- 验证:21 单测 + 假服务端回归全过;真实服务器 FTP(127.0.0.1)、
  FTPS(localhost)、FTPS(127.0.0.1) 三种组合全过;clippy 0 新增 lint
2026-09-15 22:31:36 +08:00
..