от slaff(24-12-2025)

рейтинг (12 )   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Attachix е свободен софтуер с чиято помощ може лесно да достъпвате и управлявате вашите файловете в Интернет, подобно на Dropbox, Google Drive или други услуги за съхраняване на файлове.

В сравнение със съществуващите услуги Attachix има следните предимства:

  1. Данните и тяхната сигурност са под ваш контрол.
  2. Можете лесно да го интегрирате във вашия бизнес като използвате съществуващата инфраструктура. Например може да използвате съществуващия LDAP за да потвърдите достоверността на даден потребител, да съхранявате файловете във вече съществуващия компютърен център. Или да стартирате attachix от най-изгодния за вас доставчик.
  3. Не е нужно да инсталирате допълнителен софтуер за да достъпвате файловете. Може да използвате WebDAV клиент, който е инсталиран в всички модерни операционни системи или директно от вашият браузър.

Представяне

Attachix е python базиран сървър, който се разпространява под свободен MIT лиценз. Най-новата версия може да свалите директно от git хранилището https://github.com/slaff/attachix. Всъщност attachix е два продукта в едно. Първият продукт е „вградения” Ajax/HTML5 клиент който Ви позволява да достъпвате и управлявате вашите файлове навсякъде с помощта на модерен уеб браузър или мобилно устройство. Работното му име е "JSFront". Вторият продукт е високо производителния сървър написан на python. Той се отличава с ниска консумация на памет и CPU и може да обработва хиляди заявки едновременно. Което го прави подходящ както за малки и средни организации, така и за мулти-национални организации които имат хиляди служители.

В тази статия ще се говори предимно за python сървъра. Той използва в основата си gevent. Gevent е библиотеката която позволява едновременната обработка на множество задачи, без да се употребява голямо количество памет или процесорно време. За пример gevent може да обработва 100 едновременни заявки използвайки 1 MB памет, докато стандартните сървъри се нуждаят от до 10 до 50 и повече MB памет.

Инсталация

Клонирайте последната версия на програмния код на Attachix от github. В текущият момент Attachix зависи от следните допълнителни модули за python:
  • gevent 1.x
  • redis-py
  • cjson
  • ujson
  • xml.etree
  • py-sendfile
  • magic
Както и наличието на системата за кеширане Redis.
Използвайте пакетния мениджър за вашата дистрибуция за да инсталирате тези пакети или easy_install.

Пускане на сървъра в експлоатация

След като сте готови с инсталацията може да стартирате вашия сървър за първи път. Трябва да влезнете в под-директория server на директорията където е свален кода на attachix и от там да стартирате самия сървър.
cd /<path-to-attachix>/server/
 python server.py
 

Конфигурация

Конфигурацията на Attachix сървъра е доста гъвкава и не особено трудна за разработчик на python. Конфигурацията е разделена на основна част която се намира във файла server/conf/server.py. За всеки "виртуален хост” има допълнителен файл с конфигурация. Файловете се намират в server/conf/vhosts/available/. Виртуалните хостове в Attachix са сходни с виртуалните хостове в популярния апачи уеб сървър. От конфигурационния файл на даден виртуален хост може посочите кое IP, порт, SSL сертификати и „дърво с ресурси” да се използват.

Дърво с ресурси

Дървото с ресурси за всеки виртуален хост определя какви ресурси ще се показват под какъв адрес. Кодът по-долу, от файла /conf/vhosts/available/default.py, Дефинира че всички елементи ще могат да се достъпват посредством WebDAV протокола, самите данни ще се намират в директорията посочена от променливата dataFolder в server/conf/server.py и ще има мениджър за заключване на файловете(locking), мениджър за ограничаване достъпа до тях само от оторизирани потребители(auth), както и система за известяване при взаимодействие с данните в посоченото дърво(notifier).

Видове ресурси

Конфигурацията на Attachix позволява посочването на различни типове ресурси. Ако искате да позволите достъпа до локална директория и да може да менажирате файловете в нея е най-добре да изберете WebDAV ресурс. Както в примера по-горе. Ако искате да добавите ресурс който да е самостоятелен файл, като favicon.ico например, или директория със статични картинки и CSS файлове които ще може само да четете без да може да управлявате и променяте то може да използвате StaticResource. Кодът в следващия пример Ви позволява да четете всички файлове от JavaScript клиента през уеб браузъра си или WebDAV клиент от /~js/ . Ако искате да дефинирате от къде идва favicon.ico файла, то може да добавите във вашата конфигурация редовете по-долу Може да добавите и ресурси, които на практика са само огледало към вече съществуващи ресурси. Това става използвайки ProxyResource В примерът по-горе при опит да отворите пътя /lbg/ информацията ще бъде изискана от Linux-BG и ще бъде показа от attachix сървъра сякаш се намира там.

Защита на достъпа до ресурси

Важно е да може да ограничите достъпа до споделяните ресурси в Интернет. Attachix предлага различни оторизатори (Authentication Providers). В тях може да се дефинира как да се представи даден потребител пред оторизиращите системи. При използване на уеб приложения може да използвате Basic Authentication или Digest Authentication. Всеки оторизатор допълнително предоставя информацията на оторизиращата система(authentication backends) за проверка. Оторизиращата система съдържа в себе си съществената логика необходима за проверка на потребителско име и парола например. Това означава, че може да използвате вече съществуващи такива системи, като вашата LDAP или PAM система. По-долу е даден пример за използване на DigestAuthentication и оторизираща система която съхранява информацията на потребители кодирано във локален файл. А следния код демонстрира използването на PAM оторизираща система.

Добавяне на известители

Attachix сървъра ви позволява да известите различни вътрешни или външни системи след успешно изпълнение на задачи върху вашите ресурси. Примерно при добавяне на нови файлове, при изтриване на стари или при промяна на техните атрибути. Наличните известители(notifier) се намират в директорията server/core/notify/plugins/available/. Може да добавите колкото желаете известите към даден ресурс. Един известител може да изпраща ел.поща, друг може да изпраща информацията към външна система за генериране на малки картинки или извличане на мета данни и т.н. Всеки известител може да посочи от кои HTTP методи се интересува. Примерно известителя на промени(changes.py) има следната дефиниция: Всички посочени по-горе настройки ще ви помогнат да настроите Attachix сървъра според вашите нужди или нуждите на вашата огранизация.

Дали може да се подобри това или онова?

Attachix с проект със свободен лицен и се нуждае от вашата помощ. Разгледайте кода (https://github.com/sla ff/attachix) и вижте дали може да подобрите python сървъра или JavaScript клиента. Ако имате въпроси може да използвате групите (https:/ /groups.google.com/forum/#!forum/attachix). В този момент разрабочик на основните компоненти е Славей Караджов. Но има още много неща за подобряване и добавяне. Примерно липсват възможности за двупосочна синхронизация на информацията между клиентите и сървъра, както и offline режим на работа, който позволява записване на промените без да е нужно да има Интернет връзка и да ги синхронизира при наличието на Интернет. Ако ви харесва този проект и го използвате успешно ще се радваме да чуем за това. Вашите градивни предложения и критика са ни от голяма полза. Изпратете ги на slaff {at} linux- bg.org или пишете в страницата на групата.


<< | Проект на „Линукс за българи“ и МТИТС - скрипт за сканиране >>