Что будет, если кто-нибудь сотрёт файл с FTP ервера во время качивания? Зависит ли это от используемого сервера и ОС или это как-то жестко декларировано самим протоколом???
зависит от веб-сервера, но если он при отдаче делает open() → отдача → close(), то ОС позаботится сама, чтоб файл не удалился пока не сделается close(). если не ошибаюсь, windows запретит удалить файл в таком случае.
зависит. Винда не даёт удалять открытые файлы, на линупсах запись о файле в директории пропадёт, но сам файл удалится только после закрытия последнего дескриптора, т.е. докачать его можно будет. Нет, протоколом это никак не регулируется.
Т.е. понятно, что если части лежат отдельными файлами — всему, что не качается в данный момент на этом месте пока, а если один файл скачивается в 4+ потоков?
ну если "части лежат отдельными файлами" — то это отдельные файлы. А если скачивается в несколько потоков — то если весь файл перекрыт запросами от потоков которые качают в момент удаления, то можно докачать, иначе не получится, потому что открыть ещё один поток клиент не сможет, так как записи в директории уже нету.
Всем большое спасибо за то, что мне не пришлось поднимать два тестовых сервера, чтобы разобраться. Есть одно дополнение (писали про close(), но я недопонял) — файл исчезает, если во время скачивания произошёл непредвиденный разрыв соединения и это меня ОЧЕНЬ печалит.
зависит от веб-сервера, но если он при отдаче делает open() → отдача → close(), то ОС позаботится сама, чтоб файл не удалился пока не сделается close(). если не ошибаюсь, windows запретит удалить файл в таком случае.
зависит. Винда не даёт удалять открытые файлы, на линупсах запись о файле в директории пропадёт, но сам файл удалится только после закрытия последнего дескриптора, т.е. докачать его можно будет. Нет, протоколом это никак не регулируется.
> FTP
и?
т.е. в обоих случаях файл будет докачиваться, но на linux исчезнет из листинга?
при чём здесь веб-сервер?
да. если, конечно, ты запрашиваешь файл целиком, а не по частям, в этом случае возможны варианты
имелся в виду сервер, находящийся в вебе (и в данном случае отдающий контент по ftp).
define веб
Если это что-то отличное от кусков гипертекста (которыми файлы на ftp обычно не являются) я удивлюсь.
по частям — это в несколько потоков ИЛИ part1 ... part n?
пожалуйста http://en.wikipedia.org/wiki/Webs_(web_h...
пиздец. один веб-хостинг — это веб. А все остальные сайты тогда что?
ну, был указан как пример, где можно поставить ftp-сервер.
я определение спрашивал, а не примеры
Т.е. понятно, что если части лежат отдельными файлами — всему, что не качается в данный момент на этом месте пока, а если один файл скачивается в 4+ потоков?
так-то ftp-сервер куда угодно можно поставить, хоть на тостер
а я не тебе отвечал
ну если "части лежат отдельными файлами" — то это отдельные файлы. А если скачивается в несколько потоков — то если весь файл перекрыт запросами от потоков которые качают в момент удаления, то можно докачать, иначе не получится, потому что открыть ещё один поток клиент не сможет, так как записи в директории уже нету.
а я тупее и меняьше знаю, все довольны?
ебануцца, а кому же ты отвечал на мой коментарий?
в /1 я отвечал не тебе
слив зощитан
Всем большое спасибо за то, что мне не пришлось поднимать два тестовых сервера, чтобы разобраться. Есть одно дополнение (писали про close(), но я недопонял) — файл исчезает, если во время скачивания произошёл непредвиденный разрыв соединения и это меня ОЧЕНЬ печалит.