Openssh sftp-server:.filepart支持?

我试图设置一个SFTP服务器,运行Ubuntu Server 11.04。 我安装了openssh-server来提供SSH访问。 我想要做的是使file upload运行一个后缀(。文件或任何),这将在传输完成后被删除。

stream程的想法是:

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

这是为了确保不完整的file upload不会覆盖现有的文件。 任何想法如何我可以做到这一点?

谢谢

ProFTPD可以通过mod_sftp模块支持SFTP, 并且可以完成你用HiddenStores指令描述的HiddenStores 。 FTP和SFTP上传都支持该function。

充分披露: 我是ProFTPD和mod_sftp的作者

OpenSSH服务器不支持这个。

WinSCP SFTP客户端可以从客户端做到这一点,如果有帮助。

请参阅https://winscp.net/eng/docs/resume#automatic

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

请参阅https://winscp.net/eng/docs/ui_pref_resume

(我是WinSCP的作者)

使用rsync(通过SSH)。 它的目的是不破坏现有的文件,如果复制失败的一半。

如果你能够编写Perl,你可以在Net :: SFTP :: Server / Net :: SFTP :: Server :: FS之上编写自定义的SFTP服务器。

更新 :请参阅sftp-server-atomic-put.pl