Openssh sftp-server:.filepart 支持吗?

Openssh sftp-server:.filepart 支持吗?

我正在尝试设置一个 SFTP 服务器,运行 Ubuntu Server 11.04。我安装了 openssh-server 以提供 SSH 访问。我试图做的是让文件上传带有后缀(.filepart 或其他),该后缀将在传输完成后被删除。

流程思路是:

  1. 用户上传cat.jpg
  2. 服务器开始cat.jpg.filepart在目标目录中写入
  3. 上传完成后,服务器将删除之前的cat.jpg(如果有)并重命名cat.jpg.filepartcat.jpg

这是为了确保不完整的文件上传不会覆盖现有文件。有什么想法可以做到这一点吗?

谢谢

答案1

ProFTPD 可以通过以下方式支持 SFTPmod_sftp模块,可以做到你所描述的HiddenStores指令;此功能支持 FTP 和 SFTP 上传。

全面披露:我是 ProFTPD 和 mod_sftp 的作者

答案2

OpenSSH 服务器不支持此功能。

如果有帮助的话,WinSCP SFTP 客户端可以从客户端执行此操作。

https://winscp.net/eng/docs/resume#automatic

默认情况下,仅对超过 100 KB 的文件使用.filepart后缀,但您可以将其配置为对任何文件使用它。

https://winscp.net/eng/docs/ui_pref_resume

(我是 WinSCP 的作者)

答案3

使用 rsync (通过 ssh)。它旨在确保即使复制中途失败也不会破坏现有文件。

答案4

如果你能写 Perl,你可以在其上编写自定义的 SFTP 服务器网络::SFTP::服务器/网络::SFTP::服务器::FS

更新: 看sftp-服务器-原子-put.pl

相关内容