Доброго дня всем,Могли бы уважаемые помочь мне с такой проблемой.
Есть pure-ftpd последний. Юзер (не аноним) закачиват большой файл.
На сервере создается файл вида .pureftpd-upload.4a1bea77.15.13273.46d47cf
У юзера по вине провайдера происходит обрыв соединения.
Юзер подключается снова. Начинает опять закачивать этот же большой файл и закачка начинается _сначала_. Что, в принципе, логично. Ведь фтп-сервер не знает какой именно файл юзер хочет докачать.
По истечение MaxIdleTime старые pureftpd-upload.* файлы автоматически удаляются сервером.Вопрос: как сделать так чтобы юзеры могли нормально докачивать файлы после обрывов?
Спасибо за ответы.
Вдогонку:
Может быть можно как-то отключить такое поведение сервера. т.е. чтобы он закачивал сразу в оригинальное имя файла, а не в случайное? Сам такого не нашел.
>Вдогонку:
>Может быть можно как-то отключить такое поведение сервера. т.е. чтобы он закачивал
>сразу в оригинальное имя файла, а не в случайное? Сам такого
>не нашел.Попробуйте в конфиге:
NoTruncate no
судя по описанию, что-то похожее…
>>Вдогонку:
>>Может быть можно как-то отключить такое поведение сервера. т.е. чтобы он закачивал
>>сразу в оригинальное имя файла, а не в случайное? Сам такого
>>не нашел.
>
>Попробуйте в конфиге:
>NoTruncate no
>судя по описанию, что-то похожее…Не, эта опция для другого.
С обоими вариантами значения параметра он качает в .pureftpd-upload.xxx
давайте рассуждать логичски
наскока я разбираюсь в апильсинах: докачка работает в режиме даунлоад (от сервера к слиенту) - при обрыве КЛИЕНТ всегда знает сколько данных и каких он корректно получил
и соотв можем стартовать даунлоад снова, учитываю ИЗВЕСТНОЕ смещение.
Если речь про аплоад - то извиняйте - как клиент узнает до какова места закачка была корректна на СЕРВЕРЕ? стянет файл и сравнит чтоли? )))
>давайте рассуждать логичски
>наскока я разбираюсь в апильсинах: докачка работает в режиме даунлоад (от сервера
>к слиенту) - при обрыве КЛИЕНТ всегда знает сколько данных и
>каких он корректно получил
>и соотв можем стартовать даунлоад снова, учитываю ИЗВЕСТНОЕ смещение.
>Если речь про аплоад - то извиняйте - как клиент узнает до
>какова места закачка была корректна на СЕРВЕРЕ? стянет файл и сравнит
>чтоли? )))Там все проще. Обычно сервер при аплоада на него создает файл с тем именем, которое имеет файл. После обрыва клиент делает команду SIZE и сервер говорит ему размер. Соответственно клиент начинает передавать файл с этого смещения.
А pure-ftpd создает файл со случайным именем и клиент просто физически не может сказать SIZE, потому как не знает имени файла.
>>давайте рассуждать логичски
>>наскока я разбираюсь в апильсинах: докачка работает в режиме даунлоад (от сервера
>>к слиенту) - при обрыве КЛИЕНТ всегда знает сколько данных и
>>каких он корректно получил
>>и соотв можем стартовать даунлоад снова, учитываю ИЗВЕСТНОЕ смещение.
>>Если речь про аплоад - то извиняйте - как клиент узнает до
>>какова места закачка была корректна на СЕРВЕРЕ? стянет файл и сравнит
>>чтоли? )))
>
>Там все проще.нихера не проще
>Обычно сервер при аплоада на него создает файл с
>тем именем, которое имеет файл.это есть полная хня - нормальный сервер не должен так делать
а если у меня скрипт работает который ожидает появления файла по фтп?
как он отличит докаченный файл от недокаченного?
>После обрыва клиент делает команду SIZE
>и сервер говорит ему размер. Соответственно клиент начинает передавать файл с
>этого смещения.какая команда использует смещение при аплоаде?
>А pure-ftpd создает файл со случайным именем и клиент просто физически не
>может сказать SIZE, потому как не знает имени файла.
>это есть полная хня - нормальный сервер не должен так делать
>а если у меня скрипт работает который ожидает появления файла по фтп?У pure-ftpd для этого есть специальная опция.
А proftpd и vsftpd, наскольно я знаю, именно так и поступают - качают сразу в оригинальное имя файла.Но исходный вопрос то был не в том как правильно, а в том каким образом сделать именно так.
Надеюсь поможет,http://www.pentarh.com/wp/2009/06/02/pure-ftpd-resume-patch/