我正在尝试解码zip文件,因此我可以从中创建md5哈希。
当我运行这个
contents = response['Body'].read()
decoded = contents.decode('utf-8')
我得到这个错误
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 10: invalid start byte
对我有用的是IBM437
contents.decode('IBM437')
整个哈希流在AWS的ContentMD5
上传检查中工作
我没有重新格式化它的上传方式我只是用非utf-8编码来创建一个md5哈希值
在IBM437
中这样做的注意事项是什么,因为utf-8看起来像"标准"。类型。
正如有人在评论中建议的那样。不必将二进制文件转换为字符串。
这是re-approach
contents = response['Body'].read()
md = hashlib.md5(contents).digest()
contents_md5 = base64.b64encode(md).decode('utf-8')