Как работает dropbox версия / загружать большие файлы? [закрыто]

28

У меня есть бесплатная учетная запись Dropbox (2 ГБ), и мне было интересно, как работает версионирование больших файлов.

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

Было бы здорово всегда иметь актуальную версию большого файла, но я не хочу убивать свою пропускную способность, загружая 1 ГБ каждый раз.

Это возможно?

Благодарность,

barfoon
источник

Ответы:

36

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

Dropbox не только использует ваши файлы, которые вы уже загрузили, он объединяет все файлы в одну базу данных блоков и проверяет хеш каждого локального блока в этой базе данных.

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

мычание
источник
4
Есть ссылки на это? Это довольно интересно
STW
1
Команда Dropbox время от времени обсуждает это на форумах (особенно Arash F, хотя в наши дни они очень заняты).
Moo
3
Означает ли это, что он также будет загружать только измененные блоки зашифрованного файла (например, том TrueCrypt)?
Будет ли M
1
Будет - да, я верю, что довольно многие люди с большим успехом используют TrueCrypt в своих папках Dropbox.
Moo
1
Последняя часть вашего ответа больше не верна. После разгрома Dropship были внесены изменения. Вполне вероятно, что они все еще внутренне дедуплицируют, но если вы сейчас поместите «windows8.iso» (что, по крайней мере, кто-то уже сделал) в вашу папку, вам придется загружать каждый байт.
Дан
10

Что бы ни стоило, Dropbox утверждает, что создает хэши на каждые 4 МБ каждого файла. Таким образом, если вы измените смежные 2 МБ файла размером 100 МБ, скорее всего, вам потребуется всего лишь загрузить 4 МБ (или 8 МБ, если вы перейдете во второй блок 4 МБ) для повторной синхронизации файла.

Хэши, которые мы используем, предназначены только для фрагментов файла размером 4 МБ.

Источник: https://blogs.dropbox.com/tech/2016/05/inside-the-magic-pocket/

mightytightywty
источник
не ясно, однако, являются ли 4 МБ до или после сжатия и других операций
Уолтер Тросс
2

Также важно подчеркнуть, что он не загружает весь ваш файл сразу, когда вы меняете его. Например, если у вас есть уникальный файл весом 2 ГБ, скажем для зашифрованного диска, который вы держите (например, когда вы используете truecrypt или pgpdisk), и вы изменяете только пару файлов внутри зашифрованного диска, Dropbox будет загружать только блоки это эффективно изменилось. Так, например, если вы загружаете свой файл pgpdisk с 2 ГБ в dropbox, а затем изменяете, скажем, 100 МБ из этих 2 ГБ, Dropbox будет достаточно интеллектуален, чтобы обнаруживать и обновлять только то, что изменилось . Таким образом, вы не тратите впустую свои ресурсы загрузки, которые уже есть.

Другая функция, над которой я работал, - это создание Dropbox для обнаружения других экземпляров Dropbox, работающих в вашей локальной сети, и синхронизации информации между ними. Например, у вас есть ноутбук и настольный компьютер, и у обоих есть одна и та же учетная запись Dropbox, и вы обновляете свои файлы на своем рабочем столе - и рабочий стол мгновенно синхронизируется с «облаком» - когда вы подключаете свой ноутбук, вместо того, чтобы переходить к Облако, Dropbox вместо этого загрузит diff непосредственно с вашего настольного компьютера, и не будет тратить трафик загрузки. Это еще впереди - но будет приятной особенностью!

Макаубас
источник
1
Они выпустили экспериментальную сборку с возможностью одноранговой синхронизации в выходные.
Moo
1
Теперь это стабильная функция.
Вильям