Python中的Google云存储客户端是否自动检查CRC(或MD5)?
我已经试着找出Python客户端,更具体地说,是否自动检查上传或下载文件的完整性。如果没有,如何以编程方式检查CRC哈希?任何指向文档或源代码的指针都将不胜感激。目前,GCS Python包中的完整性验证在上传和下载时都不完全支持 下载 支持未分块的下载,或者是依赖项google resumable media python[]中的撰写操作[]的结果,该依赖项仅为对象的MD5校验和提供完整性验证。不支持分块验证的一个主要原因是Google云存储API没有返回对象分块的MD5或CRC32C校验和。MD5和CRC32C校验和仅适用于完整对象数据。当blob的实例Python中的Google云存储客户端是否自动检查CRC(或MD5)?,python,google-cloud-platform,google-cloud-storage,integrity,Python,Google Cloud Platform,Google Cloud Storage,Integrity,我已经试着找出Python客户端,更具体地说,是否自动检查上传或下载文件的完整性。如果没有,如何以编程方式检查CRC哈希?任何指向文档或源代码的指针都将不胜感激。目前,GCS Python包中的完整性验证在上传和下载时都不完全支持 下载 支持未分块的下载,或者是依赖项google resumable media python[]中的撰写操作[]的结果,该依赖项仅为对象的MD5校验和提供完整性验证。不支持分块验证的一个主要原因是Google云存储API没有返回对象分块的MD5或CRC32C校验和。
\u chunk\u size
为None
时,下载不会分块,这是blob
[]的新实例的默认值。底层软件包google Resubable media python[]验证blob使用的google云存储软件包[]的完整性[]。下载到文件[]。目前不支持CRC32C验证
上传
上载要求开发人员在执行上载之前执行MD5或CRC32C校验和,例如使用blob.upload\u from_file()
[]
示例,期望您已经知道对象CRC32C或MD5的base64形式(这些字段是可选的,仅用于上载):
谷歌云存储将使用这些校验和来验证上传服务器端,并且只有在没有发现错误时才完成上传
在Python中计算对象的MD5或CRC32C。
对于Python中的对象校验和,我将遵循以下问题MD5
CRC32C
我目前没有强烈推荐的特定软件包,但和软件包确实存在,它们可以帮助您以编程方式使用CRC32C检查和数据
使用crc32c包生成GCS crc32c校验和的预期值的示例:
from crc32c import crc32
import base64
with open('file-name') as f:
# Read data and checksum
checksum = crc32(f.read().encode())
# Convert into a bytes type that can be base64 encoded
base64_crc32c = base64.b64encode(checksum.to_bytes(length=4, byteorder='big')).decode('utf-8')
# Print the Base64 encoded CRC32C
print(base64_crc32c)
嗯
from crc32c import crc32
import base64
with open('file-name') as f:
# Read data and checksum
checksum = crc32(f.read().encode())
# Convert into a bytes type that can be base64 encoded
base64_crc32c = base64.b64encode(checksum.to_bytes(length=4, byteorder='big')).decode('utf-8')
# Print the Base64 encoded CRC32C
print(base64_crc32c)