Как клиент Mac Dropbox работает?

Высота ViewPager установлена ​​как match_parent. Это скрывает кнопку.

10
задан Quinn Taylor 30 June 2009 в 17:02
поделиться

5 ответов

Два предложения:

Первый позволит Вам писать приложение, которое появляется как файловая система и делает все правильные вещи; последний позволит Вам, перемещают все серверная сторона и позволяют пользователю просто смонтировать Ваш сервис как долю файла.

6
ответ дан 3 December 2019 в 13:19
поделиться

Dropbox не приводится в действие или MacFUSE или WebDAV, хотя это могли бы быть превосходные решения для того, что Вы пытаетесь выполнить.

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

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

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

То, где Dropbox действительно сияет, - то, что у них есть дополнительный прием что значки объекты в папке Dropbox с их текущим синхронизирующим состоянием. Но это не то, о чем Вы спрашиваете здесь.

До вопроса под рукой, необходимо определенно изучить MacFUSE и WebDAV, который мог бы быть идеальными решениями проблемы. Но Dropbox способ сделать вещи, с фоновым приложением, изменяющим фактические файлы на диске, мог бы быть лучшим компромиссом.

31
ответ дан 3 December 2019 в 13:19
поделиться

Dropbox, вероятно, использует FSEvents для наблюдения за изменениями в файловой системе. Это - большой API и может даже укутаться изменения, которые произошли, в то время как Ваше приложение не работало. Это - тот же API тот Центр внимания использование. Приложение строки меню, вероятно, делает фактическое наблюдение себя (так как перезапуск его может зафиксировать подвешиваемые загрузки, например).

Нет никакого способа, которым они используют MacFUSE, поскольку это потребовало бы, чтобы установка расширения ядра MacFUSE заставила Dropbox работать, и так как я определенно не устанавливал его, я высоко сомневаюсь, что они используют его.

11
ответ дан 3 December 2019 в 13:19
поделиться

Мне похоже на в большой степени измененную систему управления версиями. Это имеет все функции: файлы обновлений на основе дельт, опции восстановиться или восстановить старые изменения файлов. Почти такое чувство, что они используют мерзавца (GitFS?), или некоторая файловая система они разработали.

2
ответ дан 3 December 2019 в 13:19
поделиться

Dropbox на клиенте написан на python. Похоже, что клиент использует базу данных sqlite3 для индексации файлов. Я предполагаю, что Dropobox разбивает файл на куски, чтобы уменьшить использование полосы пропускания. Кстати, если у двух людей есть один и тот же файл, даже если они не знают друг друга, сервер может оптимизировать и избежать передачи файла большее количество раз, только копируя его на стороне сервера

.
3
ответ дан 3 December 2019 в 13:19
поделиться
Другие вопросы по тегам:

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