URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 85426
[ Назад ]

Исходное сообщение
"Pure-ftpd и докачка после обрыва"

Отправлено mega4el , 26-Май-09 19:29 
Доброго дня всем,

Могли бы уважаемые помочь мне с такой проблемой.
Есть pure-ftpd последний. Юзер (не аноним) закачиват большой файл.
На сервере создается файл вида .pureftpd-upload.4a1bea77.15.13273.46d47cf
У юзера по вине провайдера происходит обрыв соединения.
Юзер подключается снова. Начинает опять закачивать этот же большой файл и закачка начинается _сначала_. Что, в принципе, логично. Ведь фтп-сервер не знает какой именно файл юзер хочет докачать.
По истечение MaxIdleTime старые pureftpd-upload.* файлы автоматически удаляются сервером.

Вопрос: как сделать так чтобы юзеры могли нормально докачивать файлы после обрывов?

Спасибо за ответы.


Содержание

Сообщения в этом обсуждении
"Pure-ftpd и докачка после обрыва"
Отправлено mega4el , 26-Май-09 19:33 
Вдогонку:
Может быть можно как-то отключить такое поведение сервера. т.е. чтобы он закачивал сразу в оригинальное имя файла, а не в случайное? Сам такого не нашел.



"Pure-ftpd и докачка после обрыва"
Отправлено Basilisk , 29-Май-09 13:52 
>Вдогонку:
>Может быть можно как-то отключить такое поведение сервера. т.е. чтобы он закачивал
>сразу в оригинальное имя файла, а не в случайное? Сам такого
>не нашел.

Попробуйте в конфиге:
NoTruncate no
судя по описанию, что-то похожее…


"Pure-ftpd и докачка после обрыва"
Отправлено mega4el , 29-Май-09 14:19 
>>Вдогонку:
>>Может быть можно как-то отключить такое поведение сервера. т.е. чтобы он закачивал
>>сразу в оригинальное имя файла, а не в случайное? Сам такого
>>не нашел.
>
>Попробуйте в конфиге:
>NoTruncate no
>судя по описанию, что-то похожее…

Не, эта опция для другого.
С обоими вариантами значения параметра он качает в .pureftpd-upload.xxx


"Pure-ftpd и докачка после обрыва"
Отправлено Pahanivo , 29-Май-09 15:30 
давайте рассуждать логичски
наскока я разбираюсь в апильсинах: докачка работает в режиме даунлоад (от сервера к слиенту) - при обрыве КЛИЕНТ всегда знает сколько данных и каких он корректно получил
и соотв можем стартовать даунлоад снова, учитываю ИЗВЕСТНОЕ смещение.
Если речь про аплоад - то извиняйте - как клиент узнает до какова места закачка была корректна на СЕРВЕРЕ? стянет файл и сравнит чтоли? )))

"Pure-ftpd и докачка после обрыва"
Отправлено mega4el , 29-Май-09 15:43 
>давайте рассуждать логичски
>наскока я разбираюсь в апильсинах: докачка работает в режиме даунлоад (от сервера
>к слиенту) - при обрыве КЛИЕНТ всегда знает сколько данных и
>каких он корректно получил
>и соотв можем стартовать даунлоад снова, учитываю ИЗВЕСТНОЕ смещение.
>Если речь про аплоад - то извиняйте - как клиент узнает до
>какова места закачка была корректна на СЕРВЕРЕ? стянет файл и сравнит
>чтоли? )))

Там все проще. Обычно сервер при аплоада на него создает файл с тем именем, которое имеет файл. После обрыва клиент делает команду SIZE и сервер говорит ему размер. Соответственно клиент начинает передавать файл с этого смещения.

А pure-ftpd создает файл со случайным именем и клиент просто физически не может сказать SIZE, потому как не знает имени файла.


"Pure-ftpd и докачка после обрыва"
Отправлено Pahanivo , 30-Май-09 10:34 
>>давайте рассуждать логичски
>>наскока я разбираюсь в апильсинах: докачка работает в режиме даунлоад (от сервера
>>к слиенту) - при обрыве КЛИЕНТ всегда знает сколько данных и
>>каких он корректно получил
>>и соотв можем стартовать даунлоад снова, учитываю ИЗВЕСТНОЕ смещение.
>>Если речь про аплоад - то извиняйте - как клиент узнает до
>>какова места закачка была корректна на СЕРВЕРЕ? стянет файл и сравнит
>>чтоли? )))
>
>Там все проще.

нихера не проще
>Обычно сервер при аплоада на него создает файл с
>тем именем, которое имеет файл.

это есть полная хня - нормальный сервер не должен так делать
а если у меня скрипт работает который ожидает появления файла по фтп?
как он отличит докаченный файл от недокаченного?
>После обрыва клиент делает команду SIZE
>и сервер говорит ему размер. Соответственно клиент начинает передавать файл с
>этого смещения.

какая команда использует смещение при аплоаде?
>А pure-ftpd создает файл со случайным именем и клиент просто физически не
>может сказать SIZE, потому как не знает имени файла.


"Pure-ftpd и докачка после обрыва"
Отправлено mega4el , 31-Май-09 17:57 
>это есть полная хня - нормальный сервер не должен так делать
>а если у меня скрипт работает который ожидает появления файла по фтп?

У pure-ftpd для этого есть специальная опция.
А proftpd и vsftpd, наскольно я знаю, именно так и поступают - качают сразу в оригинальное имя файла.

Но исходный вопрос то был не в том как правильно, а в том каким образом сделать именно так.



"Pure-ftpd и докачка после обрыва"
Отправлено pentarh , 03-Июн-09 15:54 
Надеюсь поможет,

http://www.pentarh.com/wp/2009/06/02/pure-ftpd-resume-patch/