Baixei todo o conteúdo do meu Google Drive usando o pacote PyDrive2 para Python e fiz uma comparação dos arquivos do meu drive local e do conteúdo do meu Google Drive, e alguns dos arquivos têm hashes md5 diferentes. Nenhum dos arquivos do meu drive local foi tocado, mas...
Da minha unidade local...
"Pay Stubs/Wendy's/01-11-2022.pdf": {
"size": 3872,
"checksum": "1891f224f046ef7ff05b9dc69e275155"
},
Do Google Drive . . .
"Pay Stubs/Wendy's/01-11-2022.pdf": {
"size": 3872,
"checksum": "60e94f02230b42d5288878550f01f315"
},
Baixei o conteúdo de bytes do arquivo com fsspec e gerei um hash md5 localmente e o hash é o que deveria ser.
# GoogleDrive inherits pydrive2.fs.GDriveFileSystem https://docs.iterative.ai/PyDrive2/fsspec/
# pydrive2.fs.GDriveFileSystem inherits fsspec.AbstractFileSystem
# https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem
Drive = GoogleDrive()
print(Drive.info(path = 'root/Pay Stubs/Wendy\'s/01-11-2022.pdf'))
with Drive.open(path = 'root/Pay Stubs/Wendy\'s/01-11-2022.pdf', mode = 'rb') as rfile:
print(hashlib.md5(string = rfile.read(), usedforsecurity = True).hexdigest())
{'name': "root/Pay Stubs/Wendy's/01-11-2022.pdf", 'type': 'file', 'size': 3872, 'checksum': '60e94f02230b42d5288878550f01f315'}
60e94f02230b42d5288878550f01f315
De qualquer forma, minha pergunta é: o que o Windows poderia alterar no conteúdo de bytes do arquivo para acabar com um hash MD5 diferente após o download do arquivo?
Seria difícil identificar a causa raiz, mas há algumas possibilidades que vêm à mente:
Alternative Data Streams (ADS): O Windows pode permitir que arquivos tenham fluxos adicionais de dados associados a eles, como manter o controle de onde o arquivo pode ter vindo. Isso geralmente é algo que o usuário não consegue ver quando você baixa um arquivo.
Software antivírus: durante a verificação de arquivos, seu antivírus pode fazer modificações no arquivo.
(Tanto o primeiro quanto o segundo caso são sintomas de metadados se infiltrando no arquivo)
Sinceramente, se você estiver muito curioso sobre os dispositivos, você pode tecnicamente fazer uma comparação byte a byte entre os dois arquivos, mas não tenho certeza de como fazer isso com o Google Drive.