Еще один клон Dropbox с возможностью установки своего сервера или ownCloud против Seafile

Я давно искал замену Dropbox на что-то, чтобы можно было полностью управлять сервером, размер хранилища ограничивался бы только размером диска на сервере и при этом клиент должен быть интуитивно понятным, запускаться под Linux/MacOS/Windows, уметь синхронизировать директорию на локальном компьютере без необходимости монтирование каких либо удаленных источников, т.е. иметь доступ к файлам в оффлайне. Ниже я расскажу о своем опыте использования ownCloud и Seafile.

ownCloud


Наиболее подходящий по параметрам продукт, который мне попался, был ownCloud. Описание было многообещающим. Клиент есть под все популярные ОС, возможность скачать и установить свой сервер, приятный веб интерфейс. К тому же его пишут люди имеющие отношение к KDE, значит качество должно быть на уровне.
Правда ownCloud имел кучу дополнительных, не нужных мне сервисов, таких как: галерея, проигрыватель mp3, календарь, контакты и многое другое. Но зато умел авторизовывать пользователей с помощью LDAP.

Сервер

Что ж, попробуем. Были поставлены nginx, php-fpm, PostgreSQL, скачан и настроен ownCloud. Логинюсь под админом, настраиваю LDAP, пробую залогиниться под LDAP пользователем и… сразу получаю 500-ю ошибку. После долгих поисков было выяснено, что связка LDAP+PostgreSQL в ownCloud работает очень плохо, да и судя по всему поддержка PostgreSQL вообще очень плохо реализована, т.к. разработчики пытаются одни и те же запросы использовать на разных типах DB. Что ж, PostgreSQL был заменен на MySQL и LDAP заработал как и планировалось. Правда через стандартный порт LDAP 389 он не захотел работать, заработал только через порт Gloval Catalog 3268.

Клиент

Настало время попробовать клиент. Скачиваю, устанавливаю, запускаю, подключаюсь к серверу, указываю где будет лежать директория для синхронизации. Пока все хорошо. Закидываю файлы в директорию. Они заливаются на сервер. Захожу в веб, расшариваю директорию для других пользователей и… ничего. Они ее не видят. Даже через веб-интерфейс. После опять же долгих поисков был найден workaround, говоря по русски «костыль». В директории clientsync на сервере каждому пользователю, которому нужно открыть доступ, делается симлинк на «главную» директорию пользователя, который открывает доступ к своим файлам. Потом еще было множество экспериментов, в процессе которых директория clientsync то появлялась в веб-интерфейсе, то нет, были найдены багрепорты, где говорилось о проблемах с обновлением кеша в базе, но готового «правильного» решения я не нашел.

Так же с клиентом под линукс обнаружился довольно неприятный баг. После длительной работы он открывал и не закрывал множество файлов /dev/urandom, переставая работать с сообщением «Too many open files».

В начале я пытался создавать багрепорты, использовать версию из master, но потом понял, что критические для меня проблемы, такие как расшаривание директорий, основное для чего я собирался использовать ownCloud, решаются крайне медленно. Так ownCloud постепенно был забыт и заброшен.

Seafile


Но буквально несколько дней назад на одном из новостных сайтов я увидел новость о выходе версии 1.3 некой системы Seafile, которая так же делает попытку заменить Dropbox. Позже оказалось, что до версии 1.3 она была только на китайском языке и поэтому не была широко известна.

Описание показалось мне заманчивым и я решил попробовать.

Сервер

Сервер для хранилища уже был, так что оставалось только поставить Seafile. Скачал, распаковал. По привычке создал новую базу, запустил инсталлятор. Он ругнулся на нехватку пары пакетов. Установил пакеты, запустил инсталятор заново. Ответил буквально на несколько вопросов, таких как, имя сервера, URL, порты, пути, логин и пароль админа и все, сервер установлен. Никакой базы не надо (на данный момент Seafile использует sqlite, позже планируется поддержка других баз). При желании даже веб сервер не нужен, Seafile имеет свой встроенный веб сервер. Но у меня уже имелся настроенный nginx с валидным ssl сертификатом, так что мне оставалось только настроить его на проксирование запросов к Seafile. Позже я нашел готовый, с немного другим принципом конфиг ngnix для Seafile, но «работает — не трогай».

Логинимся на сервер, видим сообщение об отсутствии библиотек и краткую инструкцию как их добавить и как синхронизировать с компьютером


Добавляем «библиотеку». Можно указать пароль для ее шифрования, но я пока не тестировал это


И так, у нас есть библиотека, в которой будут хранится файлы с клиентов. Как видно, с русским языком проблем нет. Забегая наперед скажу, что нет их с файлами на кириллице.
Библиотеку можно: скачать (добавить в клиент), расшарить или удалить.


Клиент

Теперь настала очередь клиента. Скачал deb пакет для своего kubuntu 12.10, установил и по привычке хотел запустить его из консоли, но команда 'seafile' лишь выводила пример ее использование. Позже я нашел, что запускать нужно 'seafile-applet'. Либо через меню KDE, там он называется Seafile с оранжевеньким логотипом.

И так, клиент запустился. В KDE он встроился в трей с непонятной иконкой, точнее без нее, и меню выглядит несколько непонятно:


Возвращаемся на наш сервер, щелкаем на Dowload рядом с библиотекой. Открывается, в зависимости от браузера, новое окно или вкладка с адресом localhost:13420/repo/download/ и далее служебной информация и страница со следующим содержимым:


Можно принять путь по умолчанию либо указать свой. Можно так же указать уже имеющуюся директорию с данными, щелкнув на «sync with an existing folder». В этом случае придется вручную ввести или скопировать/вставить полный путь к директории, кнопки Browse/Обзор нет. Файлы в директории будут объедены с файлами в библиотеке, если таковые имеются.

И все! Seafile начнет автоматическую синхронизацию и отправку либо загрузку файлов с/на сервер.

Расшаривание библиотеки так же никакой сложности не представляет. Можно расшарить как отдельному пользователю, предварительно создав для него аккаунт, так и группе пользователей. Расшаренные библиотеки для группы можно посмотреть щелкнув на имя группы справа внизу под «My Groups». В следующих версиях они будут так же отображаться в «My Home -> Shared». Можно дать доступ как на чтение-запись, так и только на чтение. При выборе последнего варианта добавленные пользователем файлы просто не будут загружаться в библиотеку. Измененные на стороне пользователя файлы, скорее всего, будут переписаны файлами с сервера, но я пока не проверял.

Пользователю лишь остается скачать и установить клиент, зайти на сервер и скачать библиотеку. Все очень просто и после первого раза становится интуитивно понятно.

Итоги

На данный момент Seafile для меня выглядит как наиболее подходящая замена Dropbox. От внедрения в компании удерживает отсутствие LDAP, но для личного пользование, при наличии лишнего сервера, вполне подходит.

Минусы:
  • отсутствие поддержки LDAP. Обещают сделать сразу после того как закончат дописывать клиентов для iOS и Android. Без LDAP внедрение в компании несколько проблематично т.к. всех пользователей придется добавлять вручную;
  • невозможность расшарить директорию внутри «библиотеки». Планируют добавить в следующих версиях;
  • не все переведено и иногда вылазят иероглифы в сообщениях;


Плюсы:
  • возможность синхронизировать уже имеющиеся директории, при чем не имеет значения где эта директория расположена;
  • клиент под все популярные ОС. Мобильные клиенты на подходе;
  • интуитивный интерфейс и процесс;
  • сервер все-в-одном;
  • возможность синхронизации с/на несколько серверов в одном клиенте;


Не знаю плюс это или минус, но все храниться в git-подобной scm, поэтому если файл случайно удалили или затерли, всегда есть возможность его восстановить. Правда только через веб интерфейс. Это плюс. Минус, судя по обсуждению, в том, что если хранить большие бинарные файлы, то репозиторий будет сильно разрастаться.

Пока писал статью, обнаружил еще пару мелких багов, таких как, например, при удалении библиотеки в клиенте и/или на сервере, она не удаляется из «Download Tasks» клиента или клиент Seafile не загружается автоматически при запуске Windows хотя эта опция включена, но все они никак не влияют на синхронизацию файлов и на общую работу системы и я считаю Seafile вполне пригодным, как минимум, для личного использования в качестве замены Dropbox.
  • +33
  • 24.4k
  • 9
Share post

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 9

    +1
    А что у него с шифрованием/сжатием?
    UPD Простите, уже полез в гугл.
      +1
      Насчет сжатия не видел, а шифрование какое-то есть. При передаче (включается в клиенте) и при хранении (включается при создании библиотеки). Но сам пока не пробовал.
        0
        да, спасибо. тут нашел. Использует блоки по 1МБ, за счет этого умеет дедуплицировать данные.

        Block

        A file is further divided into blocks with variable lengths. We use Content Defined Chunking algorithm to divide file into blocks. A clear overview of this algorithm can be found at pdos.csail.mit.edu/papers/lbfs:sosp01/lbfs.pdf. On average, a block's size is around 1MB.

        This mechanism makes it possible to deduplicate data between different versions of frequently updated files, improving storage efficiency. It also enables transferring data to/from multiple servers in parallel.
      +1
      Алгоритм синхронизации достаточно долбанутый.
      Не раз сталкивался с тем, что я редактировал/удалял файл локально — а он вытягивался с сервера. В итоге, терялись изменения.
      Webdav нет, это большой минус, в общем-то, для подобных штук.
        0
        Подскажите, а вы в продакшине пользуете? Сколько пользователей?
          0
          Да один я его использую, папку с исходниками своих deb-пакетов синкать туда пробовал. С одного ноута при том.
            0
            у него, кстати, обнаружился баг с хранением .git директорий
              0
              Там гитовых каталогов нет.
        0
        у owncloud проблема с мелкими файлами
        пытался (для теста) синхронизировать каталог картинок, постоянно пополняемый новыми (от ста картинок в день)
        через неделю заметил, что гиговый каталог разросся до трёх гигов, при детально разборе выяснилось, что owncloud наплодил кучу дублей
        удалил

        Only users with full accounts can post comments. Log in, please.