Создаем собственное облако для хранения файлов
В современных условиях возможности NFS, CIFS, FTP уже не удовлетворяют пользователей, поэтому становятся более популярны сервисы вроде Dropbox, предоставляющий больше возможностей. Но из соображений безопасности лучше использовать свой собственный сервер.
ownCloud
Самый наверное популярный проект, позволяющий организовать собственное хранилище файлов для обмена данными между пользователями. Причем по возможностям он уже давно обогнал DropBox, ведь кроме шаринга пользователь получает еще и календарь, закладки, адресную книгу (с группировкой по категориям), список дел TODO. Реализовано шифрование файлов и передачи данных, после активации данной возможности информацию не может просмотреть даже администратор. Возможен контроль версий файлов (в качестве бэкенда используется git, при нехватке пространства старые редакции автоматически удаляются), установка квот и ограничений на максимальный размер файлов. Корзина позволяет восстановить файлы и каталоги удаленные через веб-интерфейс. Пользователь может просматривать PDF и ODF файлы, рисунки в фотогалерее, прослушивать музыку. Предусмотрено редактирование текстовых файлов при помощи онлайн-редактора. При помощи клиента поддерживается синхронизация файлов, календаря и адресной книги с мобильным устройством или ПК и с другими системами поддерживающими протокол remoteStorage. Система полнотекстового поиска основанная на движке Apache Lucene позволяет искать не только по именам файлов, но и по их содержимому (кстати реализовано и введение параметров голосом).
Базовые возможности легко изменить при помощи плагинов, часть из них предоставляется самим проектом, доступны разработки третьих сторон. Большую плагинов можно найти в репозитории apps.owncloud.com. Здесь находим модуль проверяющий сохраняемые файлы на наличие вирусов (используя ClamAV), организовать музыкальный сервер, позволяющий прослушивать собственную музыкальную коллекцию с любого устройства в сети, хранилище подкастов и видеороликов с доступом через веб-интерфейс или медиаплеер. Таким же образом добавляется поддержка OpenID и LDAP, и работа с внешними хранилищами Dropbox, Swift, FTP, SFTP, Google Docs, S3 и WebDAV.
Доступ к данным предоставляется как для зарегистрированных на сервере пользователей ownCloud (помечается как Общие/Shared), так и без регистрации для анонимного посетителя (в виде прямой ссылки). Реализована возможность отправки уведомлений другим пользователем через стандартный механизм нотификации KDE (Open Collaboration Services API, изначально проект развивался под эгидой KDE).
Для доступа используется веб-браузер или WebDAV, KDE KIO-Slaves при помощи которых можно подключить хранилище в виде сетевого диска. Интерфейс системы локализован и организован логично и просто, поэтому проблем с его освоением не должно возникнуть у пользователя с любым уровнем подготовки. Разработаны клиенты ownCloud Desktop Client и Mobile Clients позволяющие синхронизировать данные с настольной системой работающей под управлением Windows, Linux и Mac OS X или мобильным устройством Android (доступен в двух версиях платной и бесплатной) или iOS (iPhone/iPad/iPod).
Кроме этого в интернет можно найти большое количество расширений и приложений App Store позволяющих сделать работу с ownCloud еще более удобной. Например, для файловых менеджеров Dolphin, Nautilus, Finder и Explorer доступны модули интеграции с ownCloud.
Несколько серверов ownCloud могут взаимодействовать между собой, обеспечивая автоматическое резервное копирование и миграцию данных пользователя данных на другой сервер. Продукт быстро развивается, новый релиз выходит регулярно каждые три месяца.
Написан ownCloud на PHP и JavaScript, в качестве СУБД используется SQLite, MySQL или PostgreSQL. Для развертывания подойдет стандартный LAMP или WAMP сервер, а сам процесс достаточно тривиален.
Распространяется ownCloud по лицензии AGPL, поддержкой проекта занимается коммерческая компания OwnCloud Inc.
AjaXplorer
AjaXplorer (ajaxplorer.info) решение выросшее за 5 лет из файл-менеджера используемого для управления файлами на веб-сервере в полноценную платформу уровня предприятия для обмена данными между пользователями при помощи веб-интерфейса, iOS и Android клиента или WebDAV. Возможно простое создание минисайта на котором будут публиковаться списки доступных документов. Доступно превью для большинства распространенных форматов (аудио, видео, PDF, офисные документы). В случае изменения каталога или файла заинтересованные пользователи получают оповещение. Реализован планировщик. Доступ к файлам могут получить как зарегистрированные, так и анонимные пользователи.
Веб-интерфейс локализован (хотя и не полностью), построен логично и понятно. Слева собраны все ресурсы (папка, общие и закладки), вверху панель действий (показываются только доступные), справа выводится подробная информация о выбранном файле. Сами файлы показываются в окне посередине. Вид отображения меняется, ненужные блоки можно убрать. Некоторые действия вызываются при помощи контекстного меню. Вообщем работа с AjaXplorer напоминает настольное приложение.
Возможна аутентификация средствами Active Directory/LDAP, HTTP, CAS, FTP, OTP и другие. Разделение прав основано на ролях применяемых к пользователям и группам, администрировать сервер могут несколько человек которым четко задаются права. Администратор имеет возможность мониторить деятельность пользователей в режиме реального времени.
Обеспечивается шифрование в течение сеанса с HTTPS и данных в файловой системе при помощи EncFS. В июне 2013 года профессиональным агентством безопасности во Франции (sysdream.com) был проведен аудит AjaXplorer, в результате которого не были обнаружены уязвимости специфические для веб-приложений.
Доступны плагины (Bridges) позволяющие интегрировать AjaXplorer в популярные CMS базирующихся на PHP — Drupal, WordPress и Joomla. Доступен соответствующий API, поэтому этот список легко увеличить. Плагин AjaXplorer for Filelink для Mozilla Thunderbird (goo.gl/S8PlO6) позволяет автоматически заменять большие вложения в сообщении сгенерированной ссылкой на хранилище AjaXplorer.
Модульность позволяет при необходимости нарастить возможности и собрать систему под конкретные нужды. Например, обеспечить доступ к другим источникам данных (файловая система, FTP, SFTP, Samba, Amazon S3, DropBox, HPCloud, IMAP, POP и т.д.), проверять файлы антивирусом. Также при помощи плагинов подключается текстовый и офисный редактор (через веб-сервис Zoho), возможность просмотра изображений, отображение Exif информации, проигрывания аудио и видеофайлов и многое другое. Поведение некоторых модулей можно настраивать более тонко, но для этого конфиги придется редактировать вручную. Например, чтобы установить разрешенные для просмотра и загрузки типы файлов следует заглянуть в server/conf/conf.access.fs.inc.
Основные плагины поставляются вместе с архивом AjaXplorer, остальные доступны по адресу ajaxplorer.info/plugins. Разработать свой плагин не так уже и сложно, проект предоставляет всю необходимую документацию и демоплагин который можно использовать как основу.
Для индексации и для быстрого поиска по хранилищу используется Lucene.
Написан AjaXplorer с использованием HTML, PHP, AJAX и JavaScript. Используются стандартные драйвера файловой системы, поэтому сервер легко переносить и масштабировать.
Seafile
Самый молодой продукт обзора Seafile (seafile.com), первые версии были представлены в конце 2012. Но до релиза 1.3 интерфейс был только на китайском языке, поэтому популярность он только начинает набирать. В Seafile реализованы не только функции хранения и синхронизации данных, но и элементы совместной работы с контентом. Пользователь может создавать любое количество библиотек (по сути отдельное виртуальное хранилище) и открывать доступ для групп, контактов или публичный. Допущенные пользователи через библиотеку обмениваются файлами. В случае изменений предусмотрена возможность отправки уведомлений. При создании библиотеки возможна активация доступа по паролю и шифрование. В случае активации шифрования документ закрывается до отправки на сервер (его могут просмотреть только допущенные), поддерживается HTTPS. На уровне библиотеки, также реализовано отслеживание версий (по умолчанию 60 дней, можно изменить число, хранить всю историю или отключить совсем), доступ к предыдущим редакциям, восстановление удаленного файла, аудит (кто и когда внес дополнения). Поддерживается предварительный просмотр основных типов файлов, обсуждение информации с участниками группы, функции ведения списков задач и управления проектами, персональное Wiki.
Еще одним плюсом является меньшая нагрузка на сервер по сравнению с другими участниками обзора.
Доступ к данным возможен как через веб-интерфейс так и при помощи клиента Seafile (Windows, Linux, Mac OS X, Android и iOS).
Код проекта написан на языке Python и распространяется под лицензией GPLv3, для хранения метаданных используется SQLite. Версия Community Edition серверной части предлагается бесплатно для Linux и Raspberry Pi, для Windows цена $150, кроме этого есть Pro Edition с большими возможностями: доступ по WebDAV, функции поиска, оповещение по email и другое (подробнее seacloud.cc/group/3/wiki/feature-pro-edition). Также можно размещать файлы на сервере разработчика (бесплатной до 1 Гб).
Заключение
Каждое решение имеет свои плюсы и минусы, поэтому выбирать нужное исходя из конкретных задач. ownCloud и AjaXplorer подкупают реализованными возможностями, а Seafile легкостью и простотой, возможностями групповой работы.
http://www.tux.in.ua/articles/3555
|