WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Советы » Пересылка результатов обработки по FTP

Пересылка результатов обработки по FTP


Дата публикации: 17-04-2008

Итак, мы обработали клиентский запрос и в результате получили несколько переменных с интересующей нас информацией.

Удобно записать эти переменные в какой-нибудь файл, который затем легко можно будет обработать, например в csv. Далее его нужно заархивировать для уменьшения траффика и передать по FTP на наш локальный SQL сервер для последующей обработки. Для записи строки в csv файл добавляем:

csv.write('%s;%s;%s;%s;%s;%s;%s;%s;%s;%s\n' % (ip, host, date, time, request, status, bytes, referer, browser, country))

(подразумевается, что csv-файловый объект, открытый на запись)

 

Для копирования файла по протоколу FTP используем модуль ftplib. Так как объем данных может быть очень большим, заархивируем файл:


import os

command = 'bzip2 -z log.csv'
os.system(command)

Затем создаем соединение с FTP сервером и передаем файл:


ftp = FTP('ftp.myhost.ru', 'oartemov', 'secret')
ftp.set_pasv(1)
ftp.cwd('/export')
ftp_command = 'STOR log.csv.bz2'
ftp.storbinary(ftp_command, open('log.csv.bz2'))
ftp.quit()

Удаляем ненужный архив:


os.unlink('log.csv.bz2')

В примере описывается достаточно экзотический случай, когда FTP сервер находится внутри локальной сети, а веб-сервер, стоящий у провайдера, выступает в роли клиента. Обычно же FTP сервер установлен на том же компьютере, что и веб-сервер, поэтому скрипт необходимо запускать с компьютера, находящегося в локальной сети и вместо метода storbinary() использовать retrbinary(). Можно код, ответственный за получение данных по FTP, разместить вначале скрипта, помещающего данные в СУБД.

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта



Прайс k flex 2016

прайс k flex 2016

santehtorg.com


Случайная цитата

Roberto Waltman:

"Объектно-ориентированная версия «спагетти кода» — это, конечно, «лазанья код» (очень много слоев)."

Опрос

Какими социальными сетями Вы пользуетесь?

Vkontakte.ru
Одноклассники
Мой Мир - mail.ru
Google Plus
Facebook
ЖЖ
Другие
Не пользуюсь