У меня возникают проблемы с распаковкой фрагментов байтов, которые я читаю с S3, используя метод iter_chunks()
из boto3
. Стратегия распаковки файла chunk-by-chunk исходит из этой проблемы .
Код выглядит следующим образом:
dec = zlib.decompressobj(32 + zlib.MAX_WBITS)
for chunk in app.s3_client.get_object(Bucket=bucket, Key=key)["Body"].iter_chunks(2 ** 19):
data = dec.decompress(chunk)
print(len(chunk), len(data))
# 524288 65505
# 524288 0
# 524288 0
# ...
Этот код изначально печатает значение 65505
с последующим 0 для каждой последующей итерации. Насколько я понимаю, этот код должен разархивировать каждый сжатый фрагмент, а затем распечатать длину несжатой версии.
Есть что-то, что я пропускаю?