2012-05-03 3 views
2

Мой клиент настроил SFTP-сервер и проверил папку с помощью FileWatcher. Как только файл скопируется на сервер SFTP, клиент выбирает их.Как остановить доступ к недействительному файлу на SFTP-сервере?

Если соединение прерывается при передаче файла, клиент выбирает недопустимый файл.

В промежутке, я иду за удаление недопустимого файла, клиент уже выбрал и удалит этот файл из этой папки.

Как я могу остановить доступ для клиента к этому файлу, пока не закончу полную транзакцию.

ответ

0

Существует два общих варианта: загрузите файл в другую папку и переместите его (вы отказали в этом для своего конкретного случая) и загрузите файл с другим именем и переименуйте файл после завершения загрузки.

Если вы управляете архитектурой сервера, вы можете сделать следующий трюк: загрузить файл с именем filename..ext. Сервер проверяет имя файла и знает ожидаемый размер. Как только файл имеет заданный размер, его можно выбрать и переименовать сервером.

+0

У меня нет контроля на стороне клиента. Архитектура исправлена, и клиент не внесет никаких изменений. –

+0

@Romil, тогда вам не повезло - как только передача прервана, с точки зрения загрузки файла с сервера. Точка. –

+0

спасибо за вашу попытку. –

0

Вы должны использовать временную папку для загрузки и перемещать файлы в контролируемой папке только в том случае, если файл полностью загружен.

+0

Архитектура папок SFTP разработана клиентом, мы не можем его модифицировать. –

Смежные вопросы