Создание (FTP) демона перемещения файла с помощью ASP.NET (Алгоритм) - PullRequest
1 голос
/ 28 января 2011

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

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

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

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

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

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

1 Ответ

3 голосов
/ 28 января 2011

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

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

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

ORIGINAL-FILE-NAME.mov

ОРИГИНАЛ-FILE-NAME.mov.PART

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

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

...