Как я могу прослушать изменения на (S) FTP-сервере? - PullRequest
1 голос
/ 22 января 2020

Я загружаю внутридневные файлы с нескольких (S) FTP-серверов. Этими серверами я не управляю, мне предоставили доступ внешние стороны.

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

Существует ли умный способ настроить прослушиватель для отслеживания изменений на этом SFTP-сервере? Например, какой-нибудь пинг, который возвращает последнюю обновленную метку времени сервера.

1 Ответ

1 голос
/ 22 января 2020

Во-первых, FTP и SFTP - два совершенно не связанных между собой протокола. Поэтому не имеет смысла спрашивать оба в одном вопросе. В любом случае, ответ на самом деле практически одинаков для обоих.


Ни протокол FTP, ни протокол SFTP не имеют какого-либо механизма для уведомления клиента об изменениях.

Они даже не иметь возможность сообщать об изменениях по запросу.

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

С помощью FTP это может быть слегка оптимизирован, запрашивая список, отсортированный по меткам времени. Таким образом, особенно если в папке много файлов, вы можете прервать загрузку списка, как только получите все новые файлы. Хотя запрос отсортированного списка является нестандартной функцией, хотя и широко поддерживается. См. Как получить файлы в папке FTP, отсортированные по времени изменения .


Если бы вы управляли сервером (машиной, а не программным обеспечением), вы могли бы создать там службу, которая будет предоставить необходимую информацию Но это не имеет ничего общего с SFTP / FTP. И поскольку вы не управляете сервером, это также не имеет значения.


Аналогичный недавний вопрос: Добавочное сканирование новых / измененных файлов FTP с помощью C#

...