как хранить на seafile windows
Установка облачного хранилища Seafile на Windows
Облачные хранилища пользуются все большей популярностью не только в корпоративном секторе, но и среди обычных пользователей. Расскажем на примере программы для размещения файлов Seafile, как провести синхронизацию данных с хранилищем. В качестве примера используется ОС Windows.
Подготовка
Программа Seafile разработана на языке Python, поэтому для начала переходим на сайт Python и скачиваем последнюю версию для Windows:
Скриншот №1. Загрузка дистрибутива.
Важно! Для установки Python необходимы права администратора.
Нажимаем «ОК» и ждем завершения процесса. Следующий шаг — установка параметров системного окружения. Для этого открываем «Панель управления» и выбираем раздел, отмеченный красной стрелкой на скриншоте:
Скриншот №2. Дополнительные опции.
Далее переходим к пункту «Переменные среды»:
Скриншот №3. Выбор среды.
В открывшемся окне отмечаем системную среду Path и нажимаем кнопку «Изменить»:
Скриншот №4. Отредактировать системную переменную.
Добавляем путь, по которому установился Python. По умолчанию это либо системный диск С, либо домашняя папка пользователя. Нажимаем «ОК», чтобы сохранить изменения.
Seafile
Скриншот №5. Выбор версии.
На сайте доступна только версия для Linux. Скачиваем актуальный релиз. Далее создаем на локальном диске папку Seafile и разархивируем файл в эту директорию. Теперь переходим в каталог Seafile и активируем файл run.bat. Он откроет рабочую область, в которой укажем путь для установки серверной части Seafile.
Установка займет меньше минуты. В системной трее появится значок активного хранилища. Вызовем контекстное меню правой кнопкой мыши и выберем пункт, отмеченный красным на скриншоте:
Скриншот №7. Контекстное меню.
Откроется рабочее поле, в котором укажем электронный ящик и пароль. Эти учетные данные будут использоваться для подключения к серверу Seafile.
Теперь изменим параметры рабочей среды. Перейдем в каталог с установленным сервером, откроем текстовым редактором файл ccnet.conf., найдем строку Service_url и внесем следующие изменения:
В качестве IP-адреса используется адрес сервера, на котором установлен Seafile. Перезапустим серверную часть программы через контекстное меню, чтобы изменения вступили в силу:
Персональное облако
Облачное хранилище позволяет не только хранить данные, но и обеспечивать совместную работу с ними в NAS.
Возможные решения
Существует несколько вариантов облачных сервисов: NextCloud, Seafile, Pydio и т.д…
Ниже рассмотрена часть из них.
OwnCloud
Реализован на PHP/Javascript.
NextCloud
Форк OwnCloud. Реализован на PHP/Javascript.
SparkleShare
Seafile
Реализован на C/Javascript.
Pydio
Реализован на PHP/Javascript.
ProjectSend
Реализован на PHP/Javascript.
SpiderOak
Закрытая проприетарная система.
С учётом того, что данное ПО платное и частично закрытое, его использование исключается.
Установка NextCloud
Изначально было желание использовать Seafile: серверная часть реализована на C, он эффективен и стабилен. Но выяснилось, что в бесплатной версии есть далеко не всё.
Потому, я попробовал Nextcloud и остался доволен. Он предоставляет больше возможностей и полностью бесплатен.
Посмотреть, как он работает в демо-режиме вы можете здесь.
Вот общие точки сопряжения между облачным хранилищем и системой:
Т.к. конфигурация NextCloud достаточно объёмна и состоит из нескольких файлов, я не буду приводить их здесь.
Всё, что нужно вы найдёте в репозитории на Github.
Там же доступна конфигурация для SeaFile.
Сначала установите и запустите NextCloud.
Для этого надо скопировать конфигурацию в каталог /tank0/docker/services/nextcloud и выполнить:
Кардинальных отличий или сильного улучшения производительности я не заметил.
Ниже я считаю, что вы используете версию 13+.
Далее, зайдите в NextCloud и выбрав в меню справа вверху «Приложения», выполните установку необходимых плагинов.
Замечу, что если вы установите версию 13+, но потом решите обновиться на версию 15, это и многое другое вы сможете сделать с помощью утилиты occ.
Настройка LDAP не тривиальна, потому я расскажу подробнее.
Нажимайте кнопку «Проверить конфигурацию DN» и, если индикатор проверки зелёный, кнопку «Далее».
Фильтр будет выглядеть так:
Нажимайте «Проверить базу настроек и пересчитать пользователей», и если всё корректно, должно быть выведено количество пользователей. Нажимайте «Далее».
На следующей странице будет настроен фильтр пользователей, по которому NextCloud их будет искать.
На этой странице надо ввести логин какого-либо пользователя и нажать «Проверить настройки».
Последний раз «Далее».
Итоговый фильтр здесь такой:
OnlyOffice
OnlyOffice — это прекрасный кроссплатформенный офисный пакет, который поддерживает работу с документами MS Office. Он бесплатный и открытый, также как и LibreOffice и также способен работать, как сервер.
Но при этом, поддержка оригинального формата у него реализована гораздо лучше, почти как в оригинальном офисе от MS, он более стабилен, имеет более продуманный интерфейс.
Кстати, есть и Desktop версия OnlyOffice, в том числе под Linux. В общем, намучавшись с тяжёлой и нестабильной Collabora (это LibreOffice), я выбрал OnlyOffice и пока вполне доволен.
Конфигурация OnlyOffice доступна на Github и ниже, под спойлером.
Поясню некоторые моменты:
Теперь надо поднять офис:
И, если всё работает, по адресу office.NAS.cloudns.cc будет следующая страница:
Затем, в настройках NextCloud требуется выбрать Пункт «Администрирование->ONLYOFFICE» и прописать в первых двух полях адрес сервера документов: https://office.NAS.cloudns.cc/ и ваш JWT token.
В третьем поле надо прописать адрес облака.
JWT токен возможно сгенерировать, например здесь.
Выводы
Облачное хранилище является центральным звеном для взаимодействия пользователей между собой и другими сервисами.
В этой роли NextCloud весьма удобен и обладает широким функционалом.
У него есть свои в процессе обновления между версиями, но в целом, это хранилище возможно рекомендовать.
Seafile — личное хранилище
Seafile — это личное хранилище для хранения данных в стиле Dropbox. Seafile — замечательный инструмент для создания личного, семейного или корпоративного файлового хранилища. Не очень сложен в установке и настройке. Бесплатен.
Облачные хранилища данных сейчас широко распространены и используются повсеместно для корпоративных и личных нужд. Бесплатные варианты для домашнего использования тоже есть.
Известные облачные «диски» с возможностью бесплатного хранения и поддержкой русского языка:
Плюсы и минусы стороннего облачного хранилища
Плюсы и минусы домашнего хранилища
Какое домашнее хранилище выбрать?
Итак, вы решили, что вам нужно домашнее хранилище. Можно купить готовое, в комплекте уже есть ПО с некоторым функционалом. Можно поднять на ОС Linux OwnCloud или Seafile — это ПО для разворачивания хранилища, для него вам нужно ещё выделить место на сервере, хранилище или домашнем компьютере. За надёжность и стоимость железа вы отвечаете сами.
Почему Seafile? Продукт основан на идеях Git и Dropbox. Для меня же главным была низкая требовательность Seafile к ресурсам. За работу с файлами отвечают написанные на си приложения. Есть даже сервер для Raspberry Pi! Я его не использовал, но он может значительно снизить затраты для построения домашнего или корпоративного облака с нуля. Seafile стабилен, так говорят, хотя я слышал и отрицательные отзывы.
Возможности Seafile
Возможностей с каждой версией всё больше. Оценить интерфейс и попробовать поработать в Seafile можно прямо в демонстрационном облаке:
Для своей работы Seafile использует базу данных (SQLite, MySQL) и вебсервер (Apache, Nginx).
Для больших нагрузок можно использовать кластерные системы с балансировщиками, распределёнными хранилищами и кеширующими серверами БД типа memcached.
У меня в самой обычной конфигурации скорость загрузки достигала 7 Мб/с. По замерам разработчиков скорость может достигать 10 Мб/с в обычной конфигурации.
Seafile поддерживает синхронизацию файлов. Можно включить синхронизацию на телефоне с альбомом камеры.
Seafile поддерживает шифрование библиотек на уровне хранилища. Шифрование осуществляется на стороне клиента с помощью ключа, связанного с паролем пользователя. Расшифровать данные можно на клиенте. В этом случае админ не сможет восстановить зашифрованные библиотеки в случае их удаления или повреждения.
Компоненты сервера Seafile
Сервер Seafile состоит из следующих компонентов:
Веб интерфейс Seafile
Расскажу только об основных моментах.
Веб интерфейс прост. Поддержка русского языка имеется. Имеется возможность кастомизации — замена логотипа, фоновой картинки, собственные CSS стили.
Внутри можно создавать библиотеки, в библиотеках папки и файлы.Библиотеки можно добавлять в группы для совместного доступа.
Загружать файлы можно простым перетаскиванием мышкой.
Библиотеками, папками и файлами можно делиться, расшаривать или загружать файлы по ссылке.
Ссылками можно делиться с зарегистрированными пользователями, можно делать открытый доступ.
Ссылку можно отправить на почту.
Файлы можно добавлять в избранные. Имеется встроенный просмотр некоторых типов файлов. Доступны комментарии к файлам.
Два вида просмотра, списком и плиткой.
Имеется история изменений.
Вы можете посмотреть снимок и восстановить из него старую версию.
Имеется поддержка аккаунтов. Пользователь может установить фотография, указать Фамилию, Имя и телефон. Можно выбрать язык интерфейса.
Дополнительно есть возможность включить плагин Wiki и создавать свои странички с wiki-разметкой. Это полезно для корпоративного использования или для ведения личной документации.
Есть страничка помощи.
Управление системой
Админ может через веб интерфейс просмотреть информацию о системе.
Можно посмотреть устройства, удалить.
Доступно управление библиотеками, создание шаблонов библиотек.
О чём не рассказал
Мобильный клиент
У меня андроид. Приложение Seafile доступно для скачивания.
Можно указать адрес своего облака, логин и пароль.
Доступен список библиотек. Приложение простое, без наворотов.
Операции с файлами.
В настройках можно включить синхронизацию с телефоном, выбрать папки для синхронизации.
Можно посмотреть список закачек.
Можно защитить вход в приложение графическим ключом.
Еще один клон Dropbox с возможностью установки своего сервера или 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 начнет автоматическую синхронизацию и отправку либо загрузку файлов с/на сервер.
Пользователю лишь остается скачать и установить клиент, зайти на сервер и скачать библиотеку. Все очень просто и после первого раза становится интуитивно понятно.
Итоги
На данный момент Seafile для меня выглядит как наиболее подходящая замена Dropbox. От внедрения в компании удерживает отсутствие LDAP, но для личного пользование, при наличии лишнего сервера, вполне подходит.
Не знаю плюс это или минус, но все храниться в git-подобной scm, поэтому если файл случайно удалили или затерли, всегда есть возможность его восстановить. Правда только через веб интерфейс. Это плюс. Минус, судя по обсуждению, в том, что если хранить большие бинарные файлы, то репозиторий будет сильно разрастаться.
Пока писал статью, обнаружил еще пару мелких багов, таких как, например, при удалении библиотеки в клиенте и/или на сервере, она не удаляется из «Download Tasks» клиента или клиент Seafile не загружается автоматически при запуске Windows хотя эта опция включена, но все они никак не влияют на синхронизацию файлов и на общую работу системы и я считаю Seafile вполне пригодным, как минимум, для личного использования в качестве замены Dropbox.
Seafile для домашнего облака
После того, как я распробовал Dropbox и особенно после того, как все мы стали понимать, что Dropbox далеко не идеален и личные данные там держать опасно, возникли разные мысли и в том числе о том, как поднять свой собственный, личный заменитель/дополнитель Dropbox. Время от времени а пробовал разные подобные системы, разной степени готовности и дружественности и убеждался, что все это типичное не то.
Либо эта штука нереально тормозила, либо глючила, либо обе эти проблемы одновременно. После выхода свежей, “сильно переработанной и улучшенной” 5й версии ownCloud, которая была не легче 4й и даже менее стабильной, я было уже сел писать сам такую штуку, как натолкнулся на Seafile, a точнее говоря, меня навели добрые люди в комментариях к радио-т.
Однако, вернемся к нашему герою и сразу дадим вывод: Seafile хорош, очень хорош, где-то близко к прекрасен. Есть версии сервера для Linux вообще и для RPi в частности. Установив версию серверной части на RPi и проделав ряд простых и подробно документированных шагов по установке и конфигурированию, я получил полностью рабочий сервер хранения, доступа и синхронизации за пару минут. Процесс действительно очень и очень простой и доступен всякому, кого не пугает командная строка линукса.
Кстати, чтоб попробовать Seafile в деле вовсе не надо устанавливать сервер. На cloud.seafile.com дают доступ (5г максимум) к такому серверу и это точно та система, что бы получите при установке у себя. Конечно, для личного сервера никаких 5г ограничений нет и вы можете там хранить сколько влезет на диск сервера.
В принципе, после установки сервера вы уже вполне можете это использовать. Единственный способ работы с компьютера будет через web интерфейс. Способ вполне рабочий, особенно если надо что-то быстро посмотреть или загрузить. Кстати, интерфейс хотя и очень лаконичный, но вполне функционалый. Все то, что вы ожидаете тут будет работать. К файлам тех форматов, что можно показать, будет показываться превью, загрузка/выгрузка доступна как отдельных файлов, так и каталогов и даже целых библиотек. Библиотеки это в seafile такие разделы. Переводя на язык Dropbox – каждая библиотека это свой отдельный dropbox к которому не нужен дополнительный экаунт.
Seafile поддерживает историю/версионность. В отличии от Dropbox, степень и глубина этой истории может регулироваться на уровне библиотеки и позволяет задать то, что вам удобно. На практике это весьма полезная возможность и позволяет достаточно гибко управлять размером таких исторических версий в зависимости от вашей ситуации, размера диска на сервере и степенью паранойи. Кстати, при желании можно ограничить и максимальный размер того, что пользователь займет на диске. Насколько я понимаю, это работает на уровне пользователя а не конкретной библиотеки.
И да, эта штука поддерживает многих пользователей, т.е. нечто вроде dropbox для рабочих групп. В Seafile есть возможность управлять пользователями, объединять их в группы, делиться файлами в группах и даже обмениваться некими сообщениями. Я об этом мало что могу сказать, т.к. в моем случае есть только один user и никакая компания мне тут пока не нужна. Однако, судя по обсуждениям в их форуме, подобное использование черезвычайно популярно в мелких и даже крупных группах и организациях.
Теперь что касается клиентской части. Она есть, и ее много разной. Есть клиенты под все, что захотите и даже под мобильные платформы. Клиент для Mac, который я использую, обеспечивает синхорнизацию тех библиотек, которые вам хочется иметь локально. Клиент простой и очень легкий. В отличии от dropbox и многих прочих, его работу трудно заметить по внезапному завыванию вентиляторов. Даже в режиме самого активной работы seafile клиент очень и очень скромный в использовании системных ресурсов. Кстати, и по серверным ресурсам даже на очень скромном RPi Seafile ведет себя превосходно. Даже в пиках загрузка CPU не прыгает выше 60-70% и памяти оно ест совсем не много (я не замечал более 5% на 512M RPi).
Синхронизация клиентов работает, в отличии от прочих заменителей dropbox, т.е. работает всегда, надежно и быстро. У меня сейчас около 50G данных хранится и синхорнизируется через Seafile и никаких проблем я не наблюдал. Работает это на 3х маках и работает просто отлично. Скорость в районе 5Мбайт/с и, я подозреваю, что тут упирается в специфику реализации ethernet через usb на RPi, тот же usb на котором сидит внешний диск.
Интерфейс к клиенту несколько странный. Он совмещает забавную иконку в меню с управлением через браузер.
Теперь о дополнительных возможностях. Тут есть шаринг, но только через web интерфейс. Насколько я понимаю, прямых ссылок (т.е. ссылок прямо на файл) в один клик оно не дает и ссылка ведет на страницу с пред-просмотром и Download, но при необходимости эту ссылку легко извлечь.
После установки клиент пытается интегрироваться в Finder, но у него это получается не сразу. На всех 3х моих маках надо было перезапустить клиента, чтоб Finder стал показывать библиотеки и прятать служебную информацию. Никакой глубокой интеграции с Finder тут нет (пока?) только самое базовое.