Skip to content

feat(storage): 支持 SFTP 作为存储后端 #125

Description

@AptS-1547

背景

很多自托管场景并没有对象存储,只有 NAS、单机服务器或便宜 VPS 上现成可用的 SFTP。当前只能依赖本地挂载再走 local,部署和权限边界都比较粗糙,也不方便直接复用已有的远端文件服务器。

目标

支持将 SFTP 服务器作为存储后端使用,覆盖 AsterDrive 的基础对象读写链路,并复用现有存储策略体系。

范围

  • 新增 sftp 存储驱动,与 local / s3 并列
  • 支持基础连接配置:主机、端口、用户名、密码、根目录
  • 覆盖至少以下能力:
    • 文件写入
    • 文件读取
    • 流式下载
    • 删除
    • 存在性检查
    • 元信息查询
  • 后台支持连接测试、错误信息展示与基础配置校验
  • 上传路径以服务端 relay 为主,不要求浏览器直传
  • 文档需要明确 SFTP 驱动与 local 挂载方案的取舍边界

非目标

  • 这一轮不要求支持 presigned / 浏览器直传
  • 这一轮不要求支持 SSH 私钥、代理跳板、多因子认证等高级连接能力
  • 这一轮不要求做远端目录的额外索引或缓存层

验收标准

  • 管理员可以创建并测试 SFTP 存储策略
  • 命中该策略的上传、下载、删除、预览链路可以正常工作
  • 大文件下载走流式读取,不要求全量缓冲到内存
  • 失败场景(认证失败、目录不存在、权限不足、连接超时)能够映射到稳定的错误语义
  • 文档清楚说明何时应该优先用 local 挂载,何时应该直接用 SFTP 驱动
  • 至少有一组测试覆盖基础读写链路

Metadata

Metadata

Assignees

Labels

Help WantedExtra attention is neededPriority: LowLow priority issueRustPull requests that update Rust codeScope: StorageStorage policies, connectors, drivers, provider capabilities, and storage backendsTypeScriptPull requests that update JavaScript code

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions