Автор Тема: Proftpd  (Прочетена 1698 пъти)

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Proftpd
« -: Feb 28, 2008, 10:55 »
Здравейте

Ползвам Freebsd + Proftpd 1.3
Идеята ми е следната:
Когато някой ъплоудва файл, как мога да разбера кога е приключило ъплоудването на файла на 100%
В смисъл как се разбира, че целият файл е на фтп-то, а не една част от него примерно ?

Във /var/log/tranfserproftpd.log

Thu Feb 28 10:11:38 2008 567 217.79.*** 8924727 /data/st35/1J1688.JPG b _ i r tt ftp 0 * c
Thu Feb 28 10:21:43 2008 604 217.79.*** 8560434 /data/st35/1J1689.JPG b _ i r tt ftp 0 * c
Thu Feb 28 10:32:08 2008 621 217.*** 8998948 /data/st35/1J1690.JPG b _ i r tt ftp 0 * c

"c" в края от "complete" ли идва ?
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Proftpd
« Отговор #1 -: Feb 28, 2008, 12:59 »
Прочети това, за да разбереш кое какво означава в редовете на лога. Аз само ще допълня, че буквата "c" накрая не винаги означава, че операцията е приключила докрай. Буква "c" би имало и ако потребителят прекрати трансфера по време на изпълнението му. Ако използваш xferlog-а, за да установиш дали даден файл се е качил нацяло, трябва да сравняваш числото, което е изписано в лога за големина на файла с реалната големина на файла. Тъй като това изисква човешка намеса, не е много удобно. Процесът може да се автоматизира, ако заедно с файла се качва и файл с неговата MD5 сума. След приключване на трансфера, скриптът, който трябва да напишеш за целта, ще сравнява MD5 сумата на получения файл с MD5 сумата, която пише в допълнителния файл.
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Proftpd
« Отговор #2 -: Feb 29, 2008, 09:23 »
Принципно и на мене единствения начин ми се виждаше с проверка на md5 сума, но има ли начин, мод или нещо подобно, да се укаже на сървъра преди да започне ъплоуда, да направи тази проверка ?
В крайна сметка може да се ползва и друг фтп сървър, стига да има подобна опция
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Proftpd
« Отговор #3 -: Feb 29, 2008, 09:45 »
Коя MD5 сума да сравни с крайната?

Протоколът не предвижда изпращане на md5 сумата в началото на трансфера доколкото знам. Т.е да речем че имаше някакъв сървър-сайдски модул, предполагам фтп клиентът ще се наложи да му съдейства.
Активен

"Knowledge is power" - France is Bacon

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Proftpd
« Отговор #4 -: Feb 29, 2008, 10:42 »
Да. Ставаше дума ftp трансферът също да се извършва от скрипт, който първо да създаде един файл с md5 сумата и след това да качи и двата файла, след което втори скрипт на сървъра да сравни md5 сумата на качения основен файл с md5 сумата в допълнителния файл. Това беше първото, което ми дойде наум, но разбира се, въобще не е удобно решение, ако файловете ще се качват от секретарката, а и не е 100% сигурно, тъй като има вероятност (макар и минимална поради размера на файла) по време на трансфера да се скапе и допълнителния файл с md5 сумата. Целият проблем идва от това, че ftp протоколът счита като едно и също нещо напълно приключилия трансфер и отказания трансфер от страна на потребителя. В xferlog-а и при двете се изписва "с", а в access лога и при двете се изписва съобщение с код 226 (между другото това е списък на ftp кодовете). Но ако случаят с прекратен процес от страна на потребителя може да се пренебрегне (най-малкото защото се дължи на действие на този потребител), то дали даден трансфер е приключил успешно може да се разбере или от "c"-то в xferlog-a, или от кода 226 в access лога. Ако случаят с прекратен процес не може да се пренебрегне, то единственото, което се сещам като решение, е сравнение на суми.
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Proftpd
« Отговор #5 -: Mar 10, 2008, 15:24 »
Става доста сложно по този начин. В смисъл не може да се карат клиентите да ползват даден фтп клиент с даден модул...
Другият вариант, който ми идва, е може би през някакво уеб базирано приложение, което преди започване на ъплоуда да взима мд5 сумата....
засега ще пробвам варианта със съобщенията от лог файла, като добавка, може би сложа някакво време за изчакване, с идеята, че 30на сек. след приключване на трансфера ако няма другата заявка да се счита за комплийт....

ОК

Благодаря Ви за отзивите '<img'>
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
proftpd
Настройка на програми
webster 0 2030 Последна публикация Feb 27, 2003, 00:44
от webster
ProFTPD
Настройка на програми
Gorbachov 1 2187 Последна публикация Jun 25, 2003, 18:09
от sunhater
ProFTPd
Настройка на програми
mozly 12 3923 Последна публикация Nov 24, 2003, 19:45
от mozly
квоти при ProFTPd
Настройка на програми
FuckBTK 4 2220 Последна публикация Dec 31, 2004, 02:54
от FuckBTK
Proftpd mod
Настройка на програми
Rikko 5 2103 Последна публикация Feb 07, 2005, 20:25
от Rikko