| LINUX-BG Адрес : http://www.linux-bg.org |
| Attachix |
|
От: slaff Публикувана на: 20-07-2026 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=devs&key=449814436 |
|
Attachix е свободен софтуер с чиято помощ може лесно да
достъпвате и управлявате вашите файловете в Интернет, подобно
на Dropbox, Google Drive или
други услуги за съхраняване на файлове.
В сравнение със съществуващите услуги Attachix има следните предимства:
Представяне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:
Използвайте пакетния мениджър за вашата дистрибуция за да инсталирате тези пакети или 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 или пишете в страницата на групата. << | Проект на „Линукс за българи“ и МТИТС - скрипт за сканиране >> |
|
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|