【问题标题】:Getting gzip.BadGzipFile: Not a gzipped file (b"b'") when decompressing a received message获取 gzip.BadGzipFile:解压缩收到的消息时不是 gzip 压缩文件(b“b”)
【发布时间】:2021-06-14 13:15:48
【问题描述】:

我有一个名为 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' 开头。但是,我不确定如何解决它。非常感谢任何帮助。

【问题讨论】:

    标签: python amazon-web-services compression gzip amazon-sqs


    【解决方案1】:

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

    您可以发送的数据有什么限制?如果你只能发送可打印的字符,你可以使用Base-64 or Base-85 encoding,它只会将数据扩展几十个百分点,而不是那里的一个倍数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 2013-09-24
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      相关资源
      最近更新 更多