Файлы загрузки от vsftpd клиента ftp в/tmp и после того как они загружаются, переместите их в исходную папку

У меня есть проблемы с моим приложением. Сценарий - то, что, существует php крон, который выполняет каждую 1 минуту, и он обрабатывает папку загрузок, где, файлы загружаются через FTP-сервер (vsftpd). Если сервер загрузит файл, который составляет 1 ГБ, то php крон обработает файлы, даже если он не будет загружен полностью. Я не могу изменить синхронизацию крона, но я хочу знать, имеет ли, ли vsftpd любую функцию, которой может загрузить файл в /tmp и затем переместитесь в исходную папку, после того как загрузка завершена?

1
задан 15 August 2014 в 18:00
1 ответ

Нет, эта функция не встроена.
Но есть решения и для этого.

Наверное, лучше всего сказать загружающей программе, чтобы она загрузила его с другим именем, например, file-weverever.txt.incomplete и после завершения загрузки переименовать его в обычное имя.
. Преимущество:
Переименование происходит быстро (так как файл находится в той же файловой системе)
. Если загрузка не заканчивается корректно, она не переименовывается.
Недостатком, конечно же, являются изменения как в процессе загрузки, так и в cronjob PHP (для игнорирования *.incomplete файлов). Другое решение - загрузить его в другую папку, как вы и предлагали, и посмотреть его с помощью чего-нибудь вроде incron.
. При этом вы можете просмотреть папку и переместить завершенные файлы в другую папку.
. Недостаток: если загрузка не удастся выполнить наполовину, она все равно будет перемещена и, возможно, обработана

.
1
ответ дан 4 December 2019 в 00:20

Теги

Похожие вопросы