Я пытаюсь настроить SFTP-сервер на Ubuntu Server 11.04. Я установил openssh-server для доступа по SSH. Я пытаюсь сделать загрузку файлов с суффиксом (.filepart или что-то еще), который будет удален по завершении передачи.
Идея потока:
cat.jpg
cat.jpg.filepart
в целевом каталогеcat.jpg
(если есть) и переименовывает cat.jpg.filepart
к cat.jpg
Это необходимо для того, чтобы при загрузке неполных файлов существующие файлы не были перезаписаны. Есть идеи, как я могу это сделать?
Спасибо
Сервер OpenSSH этого не поддерживает.
Клиент WinSCP SFTP может делать это на стороне клиента, если это помогает.
Видеть https://winscp.net/eng/docs/resume#automatic
По умолчанию используется .filepart
суффикс только для файлов размером более 100 КБ, но вы можете настроить его для использования с любым файлом.
Видеть https://winscp.net/eng/docs/ui_pref_resume
(Я автор WinSCP)
Используйте rsync (поверх ssh). Он разработан, чтобы не уничтожать существующие файлы, если копии не работают на полпути.
ProFTPD может поддерживать SFTP через mod_sftp модуль и может делать то, что вы описываете, с его HiddenStores
директива; эта функция поддерживается как для загрузки по FTP, так и для SFTP.
Полное раскрытие: Я автор ProFTPD и mod_sftp.
Если вы умеете писать Perl, вы можете написать свой настраиваемый SFTP-сервер поверх Сеть :: SFTP :: Сервер/Сеть :: SFTP :: Сервер :: ФС.
Обновить: видеть sftp-server-atomic-put.pl