суббота, 18 июня 2011 г.

Развитие блога

Привет всем!
Я думаю, что блог о системе которую мы создаем очень интересная мысль. И с сегодняшнего дня начну потихоньку развивать данное направление. Мое основное направление в этом сервисе это "виртуальный диск". В этом блоге я буду делится с вами мыслями, технологиями, общаться, спорить, прислушиваться и конечно же рассказывать о наших достижениях.

Сейчас мы заканчиваем новый прототип "виртуального диска", мы вложили огромное количество усилий в него и думаю он будет великолепно работать. В дальнейшем я хочу рассказать вам, что же это такое "виртуальный диск", чем он отличается от таких проектов как DropBox и Ubuntu ONE. На что мы потратили кучу сил, почему первая версия работает не как хотелось, что мы хотим в результате.

С уважением, Евгений.

воскресенье, 26 сентября 2010 г.

Версия клиента FSB 0.2.15

Оказалось, что трафик, идущий от сервера, не жмется gzip-ом. Скорее всего с этим и связаны различного рода затупления. В версии 0.2.15 устранил эту промашку.

Скачать новую версию можно здесь.

понедельник, 16 августа 2010 г.

Передача Cookie при использовании xmlrpclib

Система YourDocs предоставляет свои функции по протоколу XML-RPC. Идентификация пользователя выполняется по адресу сессии, который должен быть передан системе в виде кукиса с именем SESADDR. Проблема заключает в том, что библиотека xmlrpclib "из коробки" не умеет отсылать кукисы вовсе (по крайней мере мне стандартный способ решения этой задачи неизвестен).

Натолкнувшись на вариант, описанный здесь, создал свой класс транспорта, в котором был переопределен всего один метод - send_request:

 

class YourDocsSimpleCookieTransport(xmlrpclib.Transport):
    VERBOSE = False
    def __init__(self, server):
        xmlrpclib.Transport.__init__(self)
        self.server = server
        self.verbose = self.VERBOSE
        self._cookie = None
    def setSessionAddress(self, session_address):
        self._cookie = Cookie.SimpleCookie()
        self._cookie['SESADDR'] = session_address
    def send_request(self, connection, handler, request_body):
        connection.putrequest("POST", '%s' % (handler))
        if self._cookie:
            connection.putheader ('Set-Cookie', 
                                  str(self._cookie)[len('Set-Cookie: '):])


Схема использования транспорта следующая:



# Создаем транспорт
transport = YourDocsSimpleCookieTransport()
# Создаем Proxy-объект с использованием этого транспорта
server = xmlrpclib.ServerProxy("http://newdocs/RPC2", transport=transport)
# Входим в систему, получая адрес сессии
session_address = server.Login.login('yourdocs:test', 'password',
                                     {'passwd':'ValidPassword'})
# Устанавливаем текущий адрес сессии
transport.setSessionAddress(session_address)
# Работаем с функциями системы
print server.Session.whoami()
# Закрываем сессию
server.Session.close()


четверг, 11 марта 2010 г.

Что такое YourDocs.biz?



Система http://yourdocs.biz представляет собой хостинг файлов.
Сейчас проект находится в стадии разработки, но большинство функций уже реализовано.

Для работы с системой можно использовать настольную клиентскую программу (скачать которую можно здесь).

Программа написана на языке Python и общается с сервером по протоколу XML-RPC. Скачать исходные коды программы можно здесь, выбрав версию под Linux (чтобы разобраться советую на исходники натравить epydoc :)).

Также реализован WebDAV-интерфейс: http://fs.yourdocs.biz/dav.