Назад | Перейти на главную страницу

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.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