답변:
Dropbox는 이진 diff 알고리즘을 사용하여 모든 파일을 블록으로 나누고 아직 클라우드에없는 블록 만 업로드합니다. 이 모든 것은 컴퓨터에서 로컬로 수행됩니다.
Dropbox는 이미 업로드 한 파일을 사용하는 것이 아니라 모든 파일을 하나의 블록 데이터베이스로 모으고 각 로컬 블록 해시를 해당 데이터베이스와 비교하여 확인합니다.
즉, 다른 사람이 자신과 동일한 파일 (예 : 최신 Ubuntu ISO)을 업로드 한 경우 업로드 할 내용이 없어도 업로드가 즉시 보이지만 백업 파일이 있으면 변경 사항 만 업로드됩니다. 완전히 고유 한 파일을 업로드하는 경우 모든 파일이 업로드 될 때까지 기다려야합니다.
가치가있는 점으로, Dropbox는 각 파일의 4MB마다 해시를 생성한다고 주장합니다. 이렇게하면 100MB 파일의 연속 2MB를 변경하는 경우 파일을 다시 동기화하기 위해 4MB (또는 두 번째 4MB 블록으로 넘어가는 경우 8MB) 만 업로드하면됩니다.
우리가 사용하는 해시는 4MB 파일 청크에만 해당됩니다.
출처 : https://blogs.dropbox.com/tech/2016/05/inside-the-magic-pocket/
또한 파일을 변경할 때 전체 파일을 한 번에 업로드하지 않는다는 점을 강조하는 것도 중요합니다. 예를 들어, 고유 한 파일 가중치가 2GB 인 경우 보유하고있는 암호화 된 디스크 드라이브 (예 : truecrypt 또는 pgpdisk를 사용하는 경우)에 대해 암호화 된 디스크 내에서 파일 몇 개만 변경하면 보관 용 계정에 블록 만 업로드됩니다 효과적으로 바뀌 었습니다. 예를 들어, 2GB의 pgpdisk 파일을 dropbox에 업로드 한 다음이 2GB의 100MB를 변경하면 dropbox는 변경된 내용 만 감지하고 업데이트 할 수있을 정도로 지능적 입니다. 따라서 이미 존재하는 업로드 대역폭을 업로드하지 않아도됩니다.
dropbox 팀이 작업하고있는 또 다른 기능은 dropbox가 로컬 네트워크에서 실행중인 dropbox의 다른 인스턴스를 감지하고 정보를 동기화하는 것입니다. 예를 들어 랩톱과 데스크톱이 있고 둘 다 동일한 보관 용 계정이 있고 데스크톱에서 파일을 업데이트하고 랩톱을 연결하지 않고 데스크톱을 "클라우드"와 즉시 동기화합니다. 클라우드에서 Dropbox는 대신 데스크탑 컴퓨터에서 직접 diff를 다운로드하고 다운로드 대역폭을 낭비하지 않습니다. 이것은 여전히오고있다 – 그러나 감미로운 특징 일 것이다!