Записки сисадмина

Или помойное ведро идей


Выделенные сервера от $130
VDS/VPS от $20

Патч pure-ftpd для корректной обработки докачки

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

По этому поводу было много разговоров в mailing list, но чето дела не нашел.

На суд общественности предлагаю патч:  http://www.pentarh.com/files/patch-correct-resume.txt

Патч добавляет опцию -7 к демону pure-ftpd, благодаря которой демон пишет контент передаваемого файла ПРЯМО в файл назначения, а не во временный файл типа “.pureftpd-upload.XXX.YYY.ZZZ”. Так же он сохраняет обработку команды APPE.

Соответственно, в конфиге добавилась аналогичная опция:

NoAtomicFile yes

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

Интрукции при сборке из исходников:

1. Положить патч в корневой каталог исходников pure-ftpd 1.0.22
2. patch -p0 < patch-correct-resume.txt
3. ./configure и все такое

Инструкции FreeBSD:

1. Положить файл в /usr/ports/ftp/pure-ftpd/files/
2. make config, make install

02.06.2009 Автор admin | FixIT, Виртуализация | 5 comments

Комментарии (5) »

  1. Некоторые ftp-клиенты делают upload через STOU, а по окончании переименовывают файл – патч в таком случае отработает корректно?

    Комментарий от Алексей | 3 июня 2009

  2. хз, посмотрим, потестим.

    Комментарий от admin | 3 июня 2009

  3. Работает. Единственное что, я сомневаюсь что в таком случае возможна докачка.

    ================================
    # ftp localhost
    Connected to localhost.localdomain.
    220-FTP server ready.
    Name (localhost:root): ********
    331 User ******** OK. Password required
    Password: ***********
    230-User ********* has group access to: ftpuser
    230 OK. Current restricted directory is /
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> sunique
    Store unique on.
    ftp> send data
    227 Entering Passive Mode (127,0,0,1,31,45)
    150-FILE: pureftpd.4a266976.22.0001
    150 Accepted data connection
    226-File successfully transferred
    226 0.353 seconds (measured here), 276.53 Mbytes per second
    102400000 bytes sent in 0.35 seconds (2.8e+05 Kbytes/s)
    ftp> ls
    227 Entering Passive Mode (127,0,0,1,228,59)
    150 Accepted data connection
    drwxr-xr-x 3 1111 ftpuser 4096 Jun 3 07:15 .
    drwxr-xr-x 4 0 ftpuser 4096 Apr 16 2007 ..
    -rw-r–r– 1 1111 ftpuser 102400000 Jun 3 07:15 pureftpd.4a266976.22.0001
    226-Options: -a -l

    Комментарий от admin | 3 июня 2009

  4. непонятно зачем это вообще?

    когда по дефолту все нормально докачивается.

    Комментарий от anon | 20 июля 2009

  5. А вы попробуйте интернет оборвать в процессе закачки большого файла на ФТП сервер.

    Комментарий от admin | 20 июля 2009

Оставить комментарий