Одновременный доступ по FTP

2874
Kristian

Как FTP-серверы обрабатывают одновременный доступ к одному и тому же файлу, т.е. если один пользователь обновляет файл, а другой читает тот же файл? Должен ли я беспокоиться о получении поврежденных данных? Это зависит от FTP-сервера или даже от операционной системы?

8

5 ответов на вопрос

2
nik

Я думаю, что сам FTP-сервер не справляется с этим.
Базовая файловая система будет управлять доступами, задействованными здесь.

Если чтение начинается перед записью, чтение обычно получает более старую версию.

Вы должны получить ответ на этот вопрос на основе
обработки файловой системы сервера для перезаписываемого файла.

1
webclimber

Я думаю, что реализация FTP просто не справляется с этим, и ОС будет зависеть от того, как она работает, Windows может заблокировать файл, Linux выдаст вам частичные данные.

Да, вы должны беспокоиться, особенно при высокой нагрузке. Решения, которые я нашел в прошлом, были в лучшем случае схематичными, включая различные папки для загрузки / выгрузки и процесс мониторинга для копирования из загрузки в загрузку, когда файл полностью загружен.

Это ухудшается, поскольку файлы длиннее и / или люди загружаются из медленных соединений.

0
ian

Я почти уверен, что у тебя могут быть проблемы. Попробуй это:

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

Если вы попробуете это с файлом .mp3. Вы можете получить к нему доступ через браузер и увидеть, что он будет воспроизводиться только до той точки, которая в данный момент загружена.

Вот почему такие программы, как Dreamweaver, имеют систему регистрации заезда / отъезда. Так что, если кто-то работает над файлом .html, кто-то другой не может загрузить более старую версию или вызвать проблемы такого рода.

Я не думаю, что FTP использует какие-либо временные файлы или очереди ...

Правильный. Однажды я распаковал файл, который на самом деле не был передан полностью. Странные сообщения об ошибках, конечно ... Arjan 14 лет назад 0
Я думаю, что обновление и существующий файл отличается от создания нового файла (чтение не начнется до того, как произойдет создание, а затем оно будет следовать за записью). Если чтение выходит за пределы записи, вы получаете не полностью завершенные чтения. Неполный файл ZIP покажет повреждение. Неполная mp3 будет играть до первой точки коррупции (я думаю). Это разница в форматах файлов. nik 14 лет назад 0
Модификация / перезапись существующего файла должна идентифицировать текущее чтение и создавать новую версию для записи, сохраняя более старую версию для завершения чтения. Вот почему я говорю в своем ответе, что в таком случае типичная файловая система выдаст более старую копию файла. nik 14 лет назад 0
0
Phoshi

Всякий раз, когда я пытаюсь получить доступ к странице, которую я еще не загрузил, я получаю «сброс соединения во время загрузки». Я думаю, что это действительно зависит от программного обеспечения, хотя.

-1
Shadok

Использование программного обеспечения Revision Control поможет в этом случае, взгляните на Git и SVN, обратите внимание, что есть два основных типа (централизованный и распределенный) и множество других приложений в дополнение к этим двум.

Этот ответ не имеет ничего общего с вопросом ... Kristian 12 лет назад 0
Операции в этих системах являются атомарными, и вы не сможете получить неполный файл, проблема решена. Shadok 12 лет назад 0
Да знаю, но вопрос был конкретно о FTP серверах Kristian 12 лет назад 0

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