Анонсирован релиз открытой платформы Seafile 2.0, предназначенной для создания сервиса облачного хранения данных, организации совместной работы и синхронизации данных. По своей сути Seafile напоминает сервис Dropbox, но отличающегося возможностью развёртывания на собственном подконтрольном оборудовании и использованием технологий Git. Код проекта написан на языке Python и распространяется под лицензией GPLv3, для хранения метаданных может применяться SQLite или MySQL. Кроме серверной части, параллельно развиваются десктоп-клиент для синхронизации файлов, web-интерфейс SeaHub и мобильные клиенты Seadroid и
Seafile-iOS для платформ Android и iOS.
Помимо базовых функций хранения на удалённом сервере и обеспечения синхронизации данных между компьютерами, Seafile предоставляет гибкие возможности по организации совместной работы с контентом. Для удобства совместной работы поддерживается создание рабочих областей, в которых члены группы могут размещать произвольную информацию, интересную для участников группы.
Наборы файлов могут объединяться в библиотеки, к которым может открываться доступ для отдельных пользователей или групп, а также публичный доступ. Для отслеживания изменения файлов в областях совместного доступа, предусмотрена возможность отправки уведомлений членам группы. Каждая библиотека воспринимается как отдельное хранилище и может синхронизироваться между машинами пользователя по отдельности.
Клиентская часть поддерживает обеспечение синхронизации данных между локальной директорией и определённой библиотекой в облачном хранилище. В web-интерфейсе поддерживаются функции предварительного просмотра и редактирования различных типов файлов, возможность обсуждения файлов с участниками группы, функции ведения списков задач, средства управления проектами, Wiki для совместного создания контента.
На уровне хранения данных библиотеки представлены в форме, напоминающей Git-репозитории. Данная особенность даёт возможность использования версионного контроля, в том числе поддержку доступа к прошлым редакциям хранимого контента, возможность отследить все внесённые изменения (кто, когда и что менял), вернуть прошлое состояние файла или восстановить случайно удалённый файл. Для обеспечения конфиденциальности данных поддерживается шифрование на стадии до отправки информации на сервер (администрация сервера не сможет просмотреть содержимое, не зная пароля). Передача данных между клиентом и сервером ведётся с использованием шифрования.
В основе Seafile лежат технологии, применяемые в системе управления исходными текстами Git. При этом Seafile не зависит от Git и самостоятельно реализует нужные методы, которые упрощены и переработаны для выполнения задач автоматической синхронизации данных, обеспечения возобновления передачи данных в случае разрыва соединения и поддержки различных бэкендов хранения на стороне сервера. Данные хранятся с разбиением на блоки, что повышает эффективность хранения и даёт возможность ускорения передачи файлов за счёт параллельной загрузки блоков с разных серверов хранения.
Новый выпуск примечателен следующими улучшениями:
- Реализовано новое клиентское приложение для десктоп-систем, пришедшее на смену старому интерфейсу, построенному с использованием web-технологий. Код нового клиента написан на языке C++ с использованием библиотеки Qt. Поддерживаются функции просмотра содержимого библиотек и их загрузки;
- Улучшена поддержка средств для резервного копирования и восстановления данных на сервере хранения. Резервное копирование может производиться на лету, без остановки работы сервера. Добавлен аналог утилиты fsck для проверки целостности данных в репозитории и восстановлении повреждённых библиотек;
- Задействован более надёжный алгоритм шифрования содержимого библиотек, предусматривающий выполнение функций шифрования и расшифровки файлов на стороне браузера. Исключено хранение на сервере пароля для шифрования (непосредственно данные шифруются при помощи случайно генерируемого ключа AES256, который хранится на сервере в виде, зашифрованном с использованием указанного пользователем пароля. Добавлена функции смены пароля для доступа к зашифрованным библиотекам (так как пароль используется для шифрования ключа, то достаточно перешифровать ключ, без необходимости повторного шифрования всех данных);
- Добавлена возможность передачи владения библиотекой или группой другому пользователю;
- В web-интерфейсе добавлена возможность перемещения, копирования и удаления одновременно нескольких файлов. В процессе редактирования данных обеспечено автоматическое сохранение черновиков.
|