1

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

vsftpd в Linux, кажется, перезаписывает, с FileZilla на Vista, я получаю 550 файл существует ...

2 ответа2

1

После настройки довольно многих FTP-серверов в свое время я могу сказать, что это зависит от сервера. Некоторые FTP-серверы имеют функцию, при которой они не отправляют обратно ошибку 550, а вместо этого переименовывают свою загрузку в file.1, file.2 и так далее. Это очень удобно для сохранения оригиналов при случайной перезаписи.

FTP-сервер, с которым я предпочитаю работать, это Pure-FTPd. Он имеет эту функцию с ключом -r :

- '-r': Never overwrite existing files. Uploading a file whoose name
already exists cause an automatic rename. Files are called xyz, xyz.1, xyz.2,
xyz.3, etc.
0

Это может зависеть от сервера, хотя обычно старый файл просто перезаписывается. Однако есть одна большая оговорка: в зависимости от владельца и прав, установленных для файла (и каталога, в котором он находится), файл, который в противном случае был бы перезаписан, может привести к ошибке, поскольку ваша учетная запись пользователя не имеет правильных прав доступа для удаления. / изменить его.

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

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