2

Я уже некоторое время использую FileZilla для работы с FTP, и хотя он работает прекрасно почти все время, я обнаружил один существенный недостаток:

Если я загружаю измененный файл, и пользователь моего сайта делает что-то, что использует этот файл (гораздо более распространенный среди включаемых файлов), прямо в момент его загрузки, пользователь получает ошибку PHP по типу unexpected $end потому что файл читается, пока он загружен наполовину.

Есть ли где-то опция в FileZilla, чтобы заблокировать файл во время его загрузки, что делает загрузку атомарной, или мне не повезло, и я вернулся к поиску хорошей FTP-программы?

1 ответ1

5

Это общая проблема. Протокол FTP не поддерживает какой-либо стандартный механизм блокировки файлов.

Это можно обойти, загрузив файл во временное имя файла; и переименуйте его в окончательное имя только после завершения загрузки.

В случае, если протокол SFTP является опцией для вас, WinSCP SFTP/FTP-клиент может сделать это прозрачно для любой загрузки. К сожалению, это поддерживается только протоколом SFTP, а не FTP. См. Автоматическое возобновление / перенос во временное имя файла в документации WinSCP.

(Я автор WinSCP)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .