Я пытаюсь получить контрольную сумму CRC32c
в своем локальном файле, чтобы сравнить ее с blob.crc32c, предоставленным библиотекой gcloud. Google говорит, что я должен использовать модуль crcmod, чтобы фактически вычислить CRC32c
хэши моих данных.Сложность сравнения сгенерированных и облачных хранилищ Google предоставлена CRC32c контрольных сумм
modifiedFile.txt
был загружен из ведомого хранилища Google Cloud на мою локальную файловую систему.
Цель состоит в том, чтобы установить should_download
в true, только если modifiedFile.txt
имеет другой CRC32c
на моем локальном клиенте и удаленном сервере. Как заставить их генерировать соответствие CRC32c
в том случае, если моя локальная файловая система и мой gcloud Blob имеют одинаковый контент?
from crcmod import PredefinedCrc
from gcloud import storage
# blob is a gcloud Blob object
should_download = True
with open('modifiedFile.txt') as f:
hasher = PredefinedCrc('crc-32c')
hasher.update(f.read())
crc32c = hasher.digest()
print crc32C# \207\245.\240
print blob.crc32C# CJKo0A==
should_download = crc32c != blob.crc32c
К сожалению, в настоящее время он всегда терпит неудачу, так как я на самом деле не знаю, как сравнить контрольную сумму я строй с crcmod
атрибуту я вижу в совпадающем Blob
объекта.