Как FTP-серверы обрабатывают одновременный доступ к одному и тому же файлу, т. Е. Если один пользователь обновляет файл, а другой читает тот же файл? Должен ли я беспокоиться о получении поврежденных данных? Это зависит от FTP-сервера или даже операционной системы?
Я думаю, что реализация FTP просто не справляется с этим, и ОС будет зависеть от того, как она работает, Windows может заблокировать файл, Linux выдаст вам частичные данные.
Да, вы должны беспокоиться, особенно при интенсивном использовании. Решения, которые я нашел в прошлом, были в лучшем случае схематичными, включая различные папки для загрузки / выгрузки и процесс мониторинга, который можно копировать из загрузки в загрузку, когда файл полностью загружен.
Это ухудшается, поскольку файлы длиннее и / или люди загружаются из медленных соединений.
Я почти уверен, что у тебя могут быть проблемы. Попробуй это:
Начните загрузку большого файла на ваш FTP-сервер. Обновите представление папки, в которую он загружается, и вы увидите, что размер файла увеличивается, а загрузка продолжается.
Если вы попробуете это с файлом .mp3. Вы можете получить к нему доступ через браузер и увидеть, что он будет воспроизводиться только до той точки, которая в данный момент загружена.
Вот почему такие программы, как Dreamweaver, имеют систему регистрации заезда / отъезда. Так что, если кто-то работает над файлом .html, кто-то другой не может загрузить более старую версию или вызвать проблемы такого рода.
Я не думаю, что FTP использует какие-либо временные файлы или очереди ...
Верный. Однажды я распаковал файл, который на самом деле не был передан полностью. Странные сообщения об ошибках, конечно ...
Arjan
Я думаю, что обновление и существующий файл отличается от создания нового файла (чтение не начнется до того, как произойдет создание, а затем оно будет следовать за записью). Если чтение выходит за пределы записи, вы получаете не полностью завершенные операции чтения. Неполный файл ZIP покажет повреждение. Неполная mp3 будет играть до первой точки коррупции (я думаю). Это разница в форматах файлов.
Ник
Модификация / перезапись существующего файла должна идентифицировать текущее чтение и создавать новую версию для записи, сохраняя более старую версию для завершения чтения. Вот почему я говорю в своем ответе, что типичная файловая система в таком случае выдаст более старую копию файла.
Ник
0
Всякий раз, когда я пытаюсь получить доступ к странице, которую я еще не загрузил, я получаю «сброс соединения во время загрузки». Я думаю, что это действительно зависит от программного обеспечения, хотя.
Использование программного обеспечения Revision Control поможет в этом случае, взгляните на Git и SVN , обратите внимание, что есть два основных типа (централизованный и распределенный) и множество других приложений в дополнение к этим двум.
Всякий раз, когда я пытаюсь получить доступ к странице, которую я еще не загрузил, я получаю «сброс соединения во время загрузки». Я думаю, что это действительно зависит от программного обеспечения, хотя.
источник
Использование программного обеспечения Revision Control поможет в этом случае, взгляните на Git и SVN , обратите внимание, что есть два основных типа (централизованный и распределенный) и множество других приложений в дополнение к этим двум.
источник