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

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

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

Я пытался настроить iFolder на Ubuntu 10.04, но пока безуспешно.

70
задан 25 August 2013 в 08:02

13 ответов

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

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

41
ответ дан 25 August 2013 в 08:02

Ech haalen d'A op AeroFS . Et gesäit aus wéi wann et en Dropbox-ähnleche Service wier, wou d'Späicheren an der Cloud optional ass. Wësst net ob / wéini se mobil Support implementéieren an ech mengen dat géif erfuerderen datt Dir dës Dateie mat der Cloud och synchroniséiert. Ech sinn haaptsächlech un enger zimlech schmerzloser Synchroniséierungsléisung tëscht Windows, Mac a Linux Computeren interesséiert.

Si sinn a fréie Beta awer Dir kënnt Umeldung fir eng Invitatioun wann Dir wëllt.

1
ответ дан 25 August 2013 в 08:02

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

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

2
ответ дан 25 August 2013 в 08:02

Я слышал о Syncany в Ubuntu UK Podcast , в настоящее время бета, но похоже, что он соответствует требованиям

5
ответ дан 25 August 2013 в 08:02

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

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

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

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

3
ответ дан 25 August 2013 в 08:02

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

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

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

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

Опыт работы с My Seafile:

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

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

1
ответ дан 25 August 2013 в 08:02

OwnCloud! Звучит так, как будто вы что-то ищете.

18
ответ дан 25 August 2013 в 08:02

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

3
ответ дан 25 August 2013 в 08:02
0
ответ дан 25 August 2013 в 08:02

Mo lo afun pẹlu mod_dav (webdav) fun olutọju wẹẹbu afun, Mo le gbe e bi awakọ ati gbe awọn faili lori ayelujara. Eyi rọrun pupọ, ṣugbọn o le bo awọn aini rẹ.

1
ответ дан 25 August 2013 в 08:02

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

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

2
ответ дан 25 August 2013 в 08:02

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

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

Ссылка на документацию SSHFS -> http://fuse.sourceforge.net/sshfs.html

0
ответ дан 25 August 2013 в 08:02

Их на самом деле много.

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

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

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

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

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

    a. Управление версиями: с помощью дельта-алгоритма rsync . Я предполагаю, что программист должен выбрать разрешение конфликтов.

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

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

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

    a. Управление версиями:

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

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

  • scp / rcp - не рекомендуется в пользу rsync

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

    a. Управление версиями: внутренний формат сообщения через LAN / WAN

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

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


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

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


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

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

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

    b. Путь к монтируемой папке, например C: \ ramdisk

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

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

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

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

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

Это будет иметь эти PRO

  • Это будет неблокирующий / асинхронный
  • Это сделает предполагается, но не требует, чтобы один компьютер в основном записывал данные в файлы.
  • Это будет работать для файлов произвольно большого размера
  • Это будет работать в * nix и Windows, связав вместе упомянутые проекты.
  • Это будет работать. когда требуется высокая производительность чтения (т.е. файлы физически расположены на диске)
  • Когда достигаются конфликтующие события, можно предоставить приложение пользовательского интерфейса, которое позволяет пользователю писать / загружать плагины, которые разумно действуют для различных видов события - то есть разные типы файлов. Например. текстовый файл может быть вызван с помощью Kompare / WinDiff, а двоичный файл будет продублирован и сохранен как другой файл.
44
ответ дан 25 August 2013 в 08:02

Другие вопросы по тегам:

Похожие вопросы: