Python中的Google云存储客户端是否自动检查CRC(或MD5)?

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校验和。

我已经试着找出Python客户端,更具体地说,是否自动检查上传或下载文件的完整性。如果没有,如何以编程方式检查CRC哈希?任何指向文档或源代码的指针都将不胜感激。

目前,GCS Python包中的完整性验证在上传和下载时都不完全支持

下载 支持未分块的下载,或者是依赖项google resumable media python[]中的撰写操作[]的结果,该依赖项仅为对象的MD5校验和提供完整性验证。不支持分块验证的一个主要原因是Google云存储API没有返回对象分块的MD5或CRC32C校验和。MD5和CRC32C校验和仅适用于完整对象数据。当blob的实例
\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)