创建给定大小的 gzip 块(填充)

Create gzip chunk with given size (padded)

假设我有一些文本,例如 'Feef'。 我可以 gzip 它,结果是 24 个字节。 有没有办法 gzip 它所以结果将是 1024 字节?它应该仍然是一个有效的 gzip 流,即它不会在解压缩时生成消息 "trailing garbage ignored"。

我将如何使用它:Gzip 数据 header 到固定大小。附加 gzip 数据 body。更新 header,将其 gzip 到相同的固定大小并覆盖。

您可以连接 gzip 流,它仍然是有效的 gzip,但它们必须是正确的流。也许有办法填充 gzip 输出?

gzip header 允许一个最多 65535 字节的额外字段,它可以包含任意数据并且在解压缩时被忽略。因此,您可以更改 gzip header 以插入一个额外的字段来将文件填充到所需的长度。有关格式说明,请参阅 RFC 1952。如果您不关心 gzip header 中的文件名,您可以使 任意 长度,以填充到任意大的大小。或者如果你想要超过 64K 并且你不想弄乱文件名,你可以附加空的 gzip 流来制作它,只要你喜欢。