获取 gzip。BadGzip文件:解压缩收到的消息时不是 gzip 文件 (b "b'" )



我有一个名为75842.html的 html 文件,我正在通过执行以下操作使用 gzip 压缩该文件:

with open('75842.html', 'rb') as f:
body_compressed=gzip.compress(f.read())

body_compressed是一个<class 'bytes'>对象。

我无法通过 SQS 发送字节,消息正文需要是一个字符串。所以我在发送文件时定义MessageBody=str(body_compressed)

在另一台服务器上阅读消息时,我想使用以下方法解压缩并保存:

with open('75842_decompressed.html', 'w') as f:
f.write(gzip.decompress(str.encode(body)))

然后我收到错误消息gzip.BadGzipFile: Not a gzipped file (b"b'")。可能是因为文件以 b' 开头。但是,我不确定如何解决它。任何帮助都非常感谢。

使用str()是一个糟糕的主意。您最终会使数据大小增加三倍,从而消除了压缩的好处!你看过str()前后的长度吗?

您可以发送的数据有什么限制?如果只能发送可打印字符,则可以使用 Base-64 或 Base-85 编码,它们只能将数据扩展几十%,而不是其中的一个因素。

相关内容

  • 没有找到相关文章

最新更新