Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 20, 2010 20:03:13

rooty
От:
Зарегистрирован: 2009-09-26
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

FTP server

Хочу создать FTP сервер, заточенный под мои нужды. Использую либу http://code.google.com/p/pyftpdlib/
Не смотря на свою гибкость не нашел нужных для меня деталей:
1. Как я понял, список пользователей в виртуальной таблице задается перед запуском сервера и если его надо изменить, то это требует перезагрузки сервера. Можно ли как то это обойти?
2. Каким образом можно реализовать ограничение дисковой квоты, исходя из того что известно текущее свободное место для каждого юзера?

Может быть кто-то работал с этой либой или другой похожей?
Спасибо.



Офлайн

#2 Фев. 20, 2010 21:38:39

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

FTP server

необязательно делать перезапуск, вызываешь ф-ию add_user и пльзователь добавляется.
для этого можно запустить параллельный поток который будет например опрашивать файлик или откроет соединение.
но я бы просто добавил в этот ftp сервер команду adduser, там всего 1 файл исходников

Офлайн

#3 Фев. 20, 2010 21:45:46

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

FTP server

что-б появилась такая ф-ия, в класс FTPHandler надо добавить ф-ию

def ftp_ADDUSER(self,line):
self.server.add_user(line)
че то типа того…

Офлайн

#4 Фев. 20, 2010 22:29:42

rooty
От:
Зарегистрирован: 2009-09-26
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

FTP server

спасибо, второй вопрос не подскажете?



Офлайн

#5 Фев. 20, 2010 22:49:26

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

FTP server

rooty
спасибо, второй вопрос не подскажете?
если штатно нет такого функционала, то можно тоже вручную - на функцию заливки файлов повешать проверку.
например проверять вес папки пользователя, либо хранить список загруженных файлов с привязкой к пользователю, или ещё какой-нибудь метод.

Офлайн

#6 Фев. 20, 2010 22:51:15

rooty
От:
Зарегистрирован: 2009-09-26
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

FTP server

Сама идея как проверять понятна, не совсем понятно куда вешать, в исходниках не очень ориентируюсь.



Офлайн

#7 Фев. 20, 2010 23:10:17

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

FTP server

для заливки на фтп ф-ия STOR, значит проверку нужно делать в ф-ию ftp_STOR

Офлайн

#8 Фев. 21, 2010 10:22:38

rooty
От:
Зарегистрирован: 2009-09-26
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

FTP server

В этом методе есть имя файла, который будет загружен, однако не ясно как узнать размер будущего файла? Есть функция on_file_received(self, file), которая вызывается по окончании загрузки, но опять же есть свои подводные камни:
1. Она вызывается только при полной загрузке файла, то есть если разорвалось соединение или просто отменена передача, то пролет
2. Файл может быть довольно больших размеров и даже если он полностью закачается, лучше бы предупредить юзера об ограничении квоты перед началом закачки



Офлайн

#9 Фев. 21, 2010 12:03:32

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

FTP server

при заливке самого файла можно контролировать на допустимый размер, при превышении разрывать соединение.

если нужно что-б все “красиво” было, нужно менять ftp на что-нибудь более подходящее под требования.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version