Como o Dropbox determina quando sobrescrever o arquivo local ao invés de sobrescrever o arquivo em nuvem?

9

Quando o Dropbox encontra um arquivo no computador diferente da versão em nuvem desse arquivo que ele conhece, como ele decide se deve sincronizá-lo sobrescrevendo o arquivo local com o arquivo em nuvem ou sincronizando-o sobrescrevendo-o arquivo de nuvem com o arquivo local?

Para reformular:

  • Se a cópia do servidor e a cópia local de um arquivo forem diferentes,

  • e se o programa da caixa de depósito for iniciado e terminar a sincronização,

  • esses dois arquivos serão os mesmos.

Esses dois arquivos também serão idênticos a um dos arquivos antigos. Minha pergunta é qual --- a cópia do servidor antigo ou a cópia local antiga? Como isso decide?

    
por Ein 20.12.2013 / 05:16

3 respostas

1

Eu tenho informações parciais que começam a responder a essa pergunta. Não sei ao certo como isso é útil para usuários experientes, mas sei que usuários mais novos, como eu, acharão esse relatório útil.

Como um aparte, trabalhar isso me deixa ainda mais intrigado sobre como uma pergunta incrivelmente básica não tem nenhuma resposta oficial ou autoritária. A falta de documentação ou discussões disponíveis me diz que os usuários do Dropbox estão bem em aceitar o que o Dropbox realmente faz como o que eles esperariam que acontecesse nessas circunstâncias. (ou seja, eu nem diria que os usuários têm uma expectativa concreta de que eles mantêm dropbox para)

Exemplos de como o Dropbox se comportará:

Nos meus exemplos, o computador A e o computador B nunca estão ligados ao mesmo tempo. Imagine um único usuário trabalhando de forma não colaborativa em casa e no trabalho, com cada computador sendo desligado antes de voltar para o outro.

O que acontece quando a pasta dropbox de um computador não é idêntica à pasta dropbox do cloud? Para máxima clareza, prefiro imaginar como dropbox.exe reage quando um computador tem uma pasta dropbox vazia . O dropbox.exe considerará esses arquivos ausentes como "exclusões" (o que significa que eles serão removidos da pasta do cloud dropbox) ou "desatualizados" (o que significa que criará novas cópias dentro da pasta dropbox local).

  1. Comece com a situação em que o comportamento é claramente óbvio: O computador A está ligado e o computador B está desligado. Se dropbox.exe estiver em execução e as alterações forem feitas em A, elas serão propagadas para a pasta da nuvem e não vice-versa. Portanto, no momento, se a pasta de A for esvaziada, esses arquivos / pastas ausentes serão considerados "exclusões" e a pasta na nuvem será esvaziada.

  2. Suponha que B tenha uma pasta dropbox vazia e A crie arquivos e sincronize-os com a pasta dropbox cloud. Se mudarmos para o computador B, a situação é que dropbox.exe interpretará a pasta dropbox vazia de B como "desatualizada" e novas cópias da pasta na nuvem serão criadas em B.

  3. Agora, para os menos óbvios: Suponha que façamos algumas alterações em B e sincronizemos essas alterações com a pasta do Cloud Dropbox. Se mudarmos para o computador A e --- sem antes executar dropbox.exe --- deletamos as coisas dentro da pasta dropbox de A, o que vai rodar dropbox.exe depois? Nessa situação, dropbox.exe interpretará os arquivos / pastas ausentes como novas exclusões que devem ser propagadas para a pasta dropbox na nuvem.

Acho confuso que nas situações 2 e 3 você tenha dropbox.exe sendo ativado e encontrando o mesmo estado "novo" em um novo computador que difere da pasta da nuvem, mas agirá de maneira diferente.

Se você quisesse inventar uma regra que explica como o dropbox.exe opera, você evidentemente não pode assumir que é uma função das três variáveis: (1) o que ele vê no computador agora, (2) o que ele vê na pasta da nuvem e (3) qual computador foi o último a sincronizar com a pasta da nuvem. (!!!)

Talvez a variável extra seja que o Dropbox se lembra do que cada computador sincronizou pela última vez com a pasta na nuvem. Na situação 2, podemos supor que a última vez que o computador B sincronizou, ele sincronizou uma pasta vazia. Na situação 3, o Dropbox lembra que na última vez que o computador A sincronizou, ele sincronizou uma pasta que era diferente do que atualmente encontra dentro da pasta.

    
por 16.01.2014 / 15:54
5

Eu não conheço os detalhes técnicos disso, mas eu tenho a situação em que eu e meu assistente operam uma caixa de depósito comum com dois computadores diferentes entrando e saindo em momentos diferentes.

A resposta à sua pergunta é que, quando você se conecta à nuvem, o Dropbox sabe (de alguma forma) que a versão atualmente na nuvem foi originalmente sincronizada do seu computador. Portanto, se a versão do seu computador for diferente, essa será a versão que será sincronizada com a nuvem.

Se dois computadores (digamos A e B) estiverem usando a mesma caixa de depósito, e cada um fizer alterações off-line, o primeiro computador ligado (digamos que seja o computador A) gerará uma sincronização de sua atualização para a nuvem. Então agora haverá a mesma versão (contendo a atualização A) em A e Cloud.

Quando o computador B está ligado, o Dropbox vai perceber que a versão do arquivo do computador B não é apenas diferente da versão atual da nuvem (o que é normal), mas diferente da última vez que o Dropbox sincronizou a partir dele. Então, se fosse para sincronizar o arquivo de B com a versão A, as mudanças de B seriam perdidas. Então, o que o Dropbox faz é fazer uma cópia da versão B e adicionar "arquivo conflitante de B" ao nome do arquivo. O arquivo original de B é então sincronizado com as atualizações A. O arquivo conflituoso, contendo as atualizações B, é então sincronizado com a nuvem e volta para A.

Deleções e conflitos decorrentes da sincronização seletiva são tratados de maneira semelhante

Também surge um conflito se um dos computadores não fechar o arquivo antes de ser desativado. A sincronização não ocorre em um arquivo aberto, portanto, neste caso, as atualizações de B serão as que são sincronizadas, e o arquivo aberto de A terminará como um conflito. Isso pode ser uma grande dor para harmonizar, mas isso é culpa nossa, não do Dropbox.

Espero que isso ajude.

    
por 09.02.2014 / 03:48
-2

Na Perguntas frequentes do Dropbox :

Unlike the Dropbox desktop app, which constantly checks your files for changes, the mobile app usually syncs on demand only. This prevents Dropbox from consuming all of your bandwidth and space.

Como isso acontece?

Isso também é mencionado em seu site :

Before transferring a file, we compare the new file to the previous version and only send the piece of the file that changed. This is called a "binary diff" and works on any file type. Dropbox compresses files (without any loss of data or quality) before transferring them as well. This way, you also never have to worry about Dropbox re-uploading a file or wasting bandwidth.

    
por 20.12.2013 / 05:35

Tags