# userpwd = "login:parol"
curl.setopt(pycurl.USERPWD,userpwd)
Во-вторых нам надо заливать файлы, делается это так:
size = os.path.getsize(path)
fp = open(path,"rb")
# url = ftp://ftp.host.com/directory/file.txt
curl.setopt(pycurl.URL,url)
curl.setopt(pycurl.UPLOAD,1)
curl.setopt(pycurl.INFILE,fp)
curl.setopt(pycurl.INFILESIZE,size)
curl.perform()
В-третьих, нам надо создавать папки, а для этого нужно юзать команды ftp. Делается это так:
quote = "MKD {0}".format(folder)
curl.setopt(pycurl.URL,host)
curl.setopt(pycurl.POSTQUOTE,[quote])
curl.setopt(pycurl.UPLOAD,0)
curl.perform()
Пока всё, этого мне хватило, чтобы написать uploader. Пришлось немного попариться при создании вложенных папок, но вроде всё работает=) Прокси юзать также как и для http.
Про вложенные директории порадовало.
ОтветитьУдалитьpydoc pycurl рассказывает про FTP_CREATE_MISSING_DIRS оно не работает?
Сорри, а чем ftplib не угодил?
ОтветитьУдалитьА чем вас не устроила стандартная библиотека для работы с ftp?
ОтветитьУдалитьНасчет ftplib. Я что-то не подумал посмотреть на стандартные библиотеки. Сейчас смотрю, не вижу чтобы можно было юзать прокси для фтп, есть они там? За FTP_CREATE_MISSING_DIRS спасибо.
ОтветитьУдалитьнет там ) я тоже курлом делал.
ОтветитьУдалитьдля стандартной библиотеки можно враппером канешно поставить сокс, но тогда не будет работать в потоке.
вообщем курл - самое оно. расширяется и доставляется все малой кровью, лучше его использовать везде.
из вариантов еще вижу twisted может даже быстрее будет.