Как создать собственный собственный сервер Dropbox / Ubuntu One дома?

70

Кто-нибудь знает о каких-либо ресурсах, которые могут показать мне, как сделать мой собственный сервер «Dropbox, Ubuntu One» дома?

Мне очень нравится идея этих сервисов, но я не хочу помещать свои «вещи» в облака. В идеале у него должен быть клиент, работающий под Linux и Windows.

Я попытался настроить iFolder на своем Ubuntu 10.04, но пока не добился успеха.

    
задан user1978 05.09.2010 в 19:08
источник

13 ответов

42

В настоящее время нет большой альтернативы с открытым исходным кодом, которая будет работать из коробки. Лучше всего следить за проектом sparkleshare: Ссылка

Надеюсь, что это станет большим, сделай сам, альтернативный.     

ответ дан Rick 05.09.2010 в 19:13
источник
44

Их действительно много.

  • SparkleShare (deps: git / subversion, mono, python) в GitHub Программное обеспечение синхронизации на основе графического интерфейса.

    а. Управление версиями: через систему управления версиями, следовательно, это мьютекс, основанный на центральном сервере через номер версии.

    б. Состояние: в стадии разработки

    с. Плюсы: OSS, основанный на моно-так легко изменяемом, минус: процесс пользовательского уровня, GC-зависимый, неэффективный протокол совместного доступа на порядок, поскольку git в основном предназначен для небольших текстовых файлов, довольно сложно компилировать (я пытался). Использование высокоуровневых инструментов.

  • lipsync (от: Unison, rsync) Программное обеспечение на основе командной строки.

    а. Версии: через rsync delta algoritm . Я предполагаю, что программист должен выбрать разрешение конфликта.

    б. Состояние: я не могу найти его исходный код, поэтому я понятия не имею. В его git-репо единственные вещи - это двоичные файлы.

    с. Плюсы: хорошая настройка, используя инструменты среднего уровня.

  • iFolder - Dropbox от Novell. Я еще не изучил его источник. Я просто хочу получить это редактирование, и если люди заинтересованы, я добавлю больше.

    а. Versioning:

    б. Состояние: Проблематично заставить его даже скомпилировать Ubuntu, не говоря уже о пакетах. Подробное руководство по установке .

    с. Плюсы: клиент Windows X64, зрелый, AD-интеграция с ACL, функции, которые другой проект не начал реализовывать. Я думаю, что это может быть хорошей отправной точкой. Минусы: Novell может не использовать свое публичное реестру svn в качестве основного репо и делать только код-капли. Однако я не знаю точно об этом. Возможно, слишком легко подключиться к openSUSE для простой установки на Ubuntu. Чтобы проверить его алгоритмы.

  • scp / rcp - устарел в пользу rsync

  • DRDB - инструменты зеркального отображения блоков для распределенного RAID-1, то есть сервер-вариант dropbox. Я еще не проверил его исходный код, но это только Linux. Фактический алгоритм, вероятно, будет легко сочетаться с исходным кодом в моих размышлениях ниже этого списка программ.

    а. Версии: внутренний формат сообщения по LAN / WAN

    б. Состояние: кажется достаточно зрелым.

    с. Плюсы: достаточно стабильны для Linux, минусы: не поддерживаются другие операционные системы.

В настоящий момент я изучаю улучшение времени компиляции на виртуализованной Windows 7, где время компиляции на Windows 7 на металле составляет 40 с, но виртуализировано примерно 3 м 20 с. Я думаю о написании драйвера ioctl, который является кэшем для записи, который похож на ram-диск для выбранных папок на NTFS.

Используя вышеприведенное программное обеспечение, я думаю, что недельная работа на 2-3 человека с полной занятостью создаст полезную Alpha, которая не потеряет файлы, объединив вышеуказанные программные средства.

В моей системе тогда общая идея была бы:

  1. Установите виртуальный диск \? {GUID}, то есть RAM-диск и RW-кеш. Программное обеспечение, создающее этот виртуальный диск, принимает два входных параметра (которые жизненно важны):

    а. Целевая папка; это папка SMB, поэтому я буду позволять сетевому стеку операционной системы обрабатывать фактический IO. В моем случае это виртуальная папка VMWare, в которой есть цель на диске ext4, но это может быть ваш файловый сервер с помощью SAMBA / SMB.

    б. Путь к папке, которая должна быть установлена, например. C: \ ramdisk

    Этот код для создания виртуальных томов берется из кода TrueCrypt в /Driver/DriverFilter.c (среди других файлов)

  2. Привод использует SMB / VMWare / сетевой протокол для извлечения данных при его запуске; он извлекает с низким приоритетом задачи асинхронно из сети и заполняет свой кеш. Он может использовать простой алгоритм уплотнения и имеет 1 поток, который использует продолжение типа сообщения-сообщения, чтобы получить отличную производительность. В Windows он может использовать обычные асинхронные вызовы ввода-вывода, а в linux он может использовать epoll / inotify и взять код из nginx .

  3. Моя служба, которая является ram-диском, монтирует безымянный диск ramdisk в качестве папки NTFS. Все программы могут продолжать писать на C: \ ramdisk или что бы я ни называл.

  4. Асинхронная копия из сети все еще продолжается. При скорости чтения около 100 Мбайт / с и 2 гигабайтах RAM, это будет 20,5 с для чтения всех данных.

Каждый вызов для чтения выполняет вычисление индекса в ЦП в фиксированном массиве n: ulong GiB max. Это потребует разрешения конфликтов, хотя блокировки чтения и записи.Если бы мы реализовали алгоритм разрешения конфликтов, аналогичный тем, которые доступны через Microsoft Sync, мы могли бы передать каждый фрагмент, который конфликтует как сообщение с другим процессом разрешения конфликта. Dropbox решает его, создавая новый файл и называя его «PrevFileName Username Conflicted Copy (yyyy-MM-dd) .ext». Возможно, это может быть изменено через небольшой виджет, если он компилируется против этого единственного источника - виджет будет обнаруживать выдающиеся изменения как сообщения / события и выбирать протокол разрешения конфликтов. Таким образом, при программировании в папке в эксклюзивном режиме виртуальная машина Windows может установить виджет в «эксклюзивный».

У этого были бы эти PROs

  • Это будет неблокирование / async
  • Это сделало бы предположение, но не требовало, чтобы один компьютер писал в основном файлы.
  • Это будет работать для произвольно больших файлов
  • Это будет работать на * nix и Windows, связывая указанные проекты.
  • Он будет работать, когда потребуется высокая производительность чтения (то есть файлы физически расположены на диске)
  • Когда конфликтующие события достигнуты, можно предоставить приложение для пользовательского интерфейса, которое позволяет пользователю писать / загружать плагины, которые действуют разумно для разных видов событий, то есть разных типов файлов. Например. текстовый файл может быть воспроизведен с помощью Kompare / WinDiff, в то время как двоичный файл будет дублироваться и сохранен как другой файл.
ответ дан Henrik 31.01.2011 в 20:22
18

OwnCloud ! звучит как то, что вы ищете.

    
ответ дан Dinesh 22.10.2011 в 11:18
5

я услышал о Syncany на Ubuntu UK Podcast , в настоящее время бета-версия, но выглядит так, как будто соответствует требованиям

    
ответ дан deveneyi 24.06.2011 в 18:57
3

Я не думаю, что это совсем то, что вы ищете, но это зависит от вашего предполагаемого использования.

CrashPlan - это программный пакет для резервного копирования и связанный с ним онлайн-сервис резервного копирования, но все равно, что их программное обеспечение имеет режим, который позволяет вам чтобы ваши данные поддерживались через Интернет (или локальную сеть) на другой компьютер, на котором запущено программное обеспечение.

Это означает, что пункт назначения не должен находиться в облаке. Это не совсем похоже на Dropbox в том, что речь идет скорее о резервном копировании, а не о синхронизации и доступе к файлам извне, но если это просто резервные копии, которые вы хотите, тогда это работает хорошо. Если вы хотите получить доступ к резервному копированию файлов с другого ПК, я думаю, вы можете сделать «локальное восстановление», но это не то, что я пробовал.

Основной программный пакет является бесплатным и поддерживает режим «резервное копирование в другой компьютер», но только плановая резервная копия, но есть «про» версия программного обеспечения, которая также стоит и делает синхронизацию в реальном времени, а не только запланированные резервные копии , (Облачное хранилище также является дополнительной оплатой в месяц)

    
ответ дан Simon P Stevens 05.09.2010 в 20:12
3

Я использую Unison для клиента и rsnapshot (rsync с perl-скриптом) для резервного копирования сервера.

    
ответ дан bassgey 21.10.2010 в 14:20
2

Посмотрите, поможет ли это:

Ссылка

    
ответ дан guest442 05.09.2010 в 22:21
2

Если вы хотите настроить две (или более) машины с реплицированной папкой, посмотрите на glusterfs.

Легко настроить, если вы следуете Руководству пользователя GlusterFS .

    
ответ дан Richard Holloway 07.09.2010 в 00:34
2

Никто не упоминал синхронизацию bitorrent ? Работает на чем угодно - Ubuntu, windows, многие обычные операторы смартфонов, малины pi .... вы называете это, возможно, работает, и как обычный пользователь. Зашифрованные передачи, файлы не хранятся в облаке (хотя я думаю, что bittorrent запускает трекер для него), достаточно быстро, вы можете выборочно обмениваться папками и почти не усложнять, вам просто нужно скопировать и вставить ключ в другой система.

Как только он настроен, он просто работает.

    
ответ дан Journeyman Geek 08.02.2014 в 05:33
1

Я слежу за AeroFS . Похоже, что это может быть служба, подобная Dropbox, где хранение в облаке необязательно. Не знаю, будет ли / когда они будут осуществлять мобильную поддержку, и я предполагаю, что для этого потребуется синхронизировать эти файлы с облаком. Меня интересует довольно безболезненное решение синхронизации между компьютерами Windows, Mac и Linux.

Они находятся в ранней бета-версии, но вы можете зарегистрироваться для приглашения, если хотите.

    
ответ дан dempa 28.01.2012 в 12:01
1

Я использую apache с mod_dav (webdav) для веб-сервера apache, я могу установить его как диск и загрузить / загрузить файлы через Интернет. Это довольно просто, но может удовлетворить ваши потребности.

    
ответ дан JurjenB 21.02.2012 в 20:35
1

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

Поэтому я хочу поделиться своим опытом. Мое текущее решение для собственной среды с облачным окружением - Seafile .

Возможности Seafile:

  • Доступ к веб-облакам
  • Клиенты для Linux, Windows, Mac, iOS (не бесплатно), Android
  • Управление пользователями / группами
  • Организация файлов через разные библиотеки
  • Автоматическая синхронизация файлов с помощью клиентского программного обеспечения.
  • Возможность публиковать файлы через создание общедоступных ссылок

Мой опыт Seafile:

  • Установка была мертвой легко и быстро! (на тонком debian vm, с файлами, хранящимися через общий доступ к физическому узлу dmraid 5)
  • Пользовательский интерфейс чистый и функциональный
  • Клиентское ПО чистое и функциональное
  • Функциональные проблемы no для меня были до сих пор! (используя это через несколько недель)
  • Набор функций является основным (по сравнению с owncloud, например,), но я подчеркиваю, что все работает здесь!
  • Нет прямой поддержки прокси (по крайней мере для клиента linux - и веб-интерфейса!). Примечание: webinterface работает, но загрузка файлов через webinterface не работает за прокси - не знаю, возможно ли это как-то

Поскольку мне не нужна поддержка прокси, я действительно доволен Seafile!

    
ответ дан Nicolas 29.07.2014 в 10:35
0

Я использую SSHFS для монтирования каталогов на моем сервере в качестве локальных каталогов на моем рабочем столе и ноутбуке. Все изменения файла сохраняются непосредственно на сервере. Однако, в отличие от dropbox, файлы не хранятся локально на ваших клиентских машинах. Я думаю, что это здорово, потому что вам не нужно беспокоиться о синхронизации и управлении версиями, но это не идеально подходит для автономного использования или очень больших файлов.

Это очень прямо и просто, и я считаю, что это лучшее решение. Единственное, что я не использую для этого - это большие медиа, такие как картинки и фильмы, потому что все файлы получают доступ через сеть. Я синхронизирую с Rsync.

Ссылка на документацию SSHFS - & gt; Ссылка

    
ответ дан Sam Swift 31.01.2011 в 20:25