Создание демона перемещения файла (FTP) с помощью ASP.NET (алгоритм)

...у меня два домена ftp://mydomain.foo и ftp://uploads.mydomain.foo

Пользователи могут загружать zip-файлы в ftp://uploads.mydomain.foo

Я хотел бы создать «демон», я думаю, с обработчиком ASP.NET, который будет перемещать файлы из ftp://uploads.mydomain.foo в ftp://mydomain.foo через определенные промежутки времени.

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

Как я мог это сделать?

ОБНОВЛЕНИЕ: демоном на самом деле будет задание Plesk cronjob, которое будет вызывать мой обработчик ASP.


person OrElse    schedule 28.01.2011    source источник


Ответы (1)


Информация о размере файла доступна вашему серверу, как только передача будет инициирована. Следовательно, вы можете написать временный файл, скажем, ORIGINAL-FILE-NAME.mov.PART или что-то еще, чтобы показать исходное имя файла вместе с вашим флагом, указывающим, что файл все еще загружается на сервер.

Поэтому, если ваша другая программа перемещает файлы с одного сервера на другой, она будет искать и находить ORIGINAL-FILE-NAME.mov.PART и, в свою очередь, пропустит перемещение ORIGINAL-FILE-NAME.mov на ваш другой сервер. сервер.

Чтобы уточнить, по мере загрузки файла ваша программа создаст временный файл .PART, флаг для поиска, и в то же время она будет активно создавать загружаемый файл. Поэтому, если вы активно загружаете ORIGINAL-FILE-NAME.mov, тогда в каталоге будут оба этих файла:

ОРИГИНАЛ-ИМЯ-ФАЙЛА.mov

ОРИГИНАЛ-ИМЯ-ФАЙЛА.mov.ЧАСТЬ

Как только загрузка будет завершена, ваша программа удалит ORIGINAL-FILE-NAME.mov.PART, и вы останетесь с фактически готовым загруженным файлом, его флаг очищен и доступен для следующего процесса передачи файла.

Вот как бы я это сделал.

person DoctorLouie    schedule 28.01.2011
comment
Просто, умно и приятно! А я думал задействовать таймеры с периодической проверкой длины файла... - person OrElse; 28.01.2011
comment
Да, мы, программисты, склонны иногда передумывать решения и создавать проблемы из проблем, которых никогда не было. Но я рад, что смог помочь :) - person DoctorLouie; 28.01.2011