Skip to content

Commit 4d2dbff

Browse files
committed
fix: Improve ZstdCompressor implementation
Signed-off-by: ddukbg <[email protected]>
1 parent 7e28a32 commit 4d2dbff

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

lib/fluent/plugin/out_s3.rb

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -632,16 +632,24 @@ def compress(chunk, tmp)
632632
end
633633

634634
class ZstdCompressor < Compressor
635+
def initialize(level = 3)
636+
@level = level
637+
end
638+
635639
def ext
636640
'zst'.freeze
637641
end
638-
642+
639643
def content_type
640644
'application/x-zst'.freeze
641645
end
642-
646+
643647
def compress(chunk, tmp)
644-
compressed_data = Zstd.compress(chunk.read, level: @level)
648+
uncompressed_data = ''
649+
chunk.open do |io|
650+
uncompressed_data = io.read
651+
end
652+
compressed_data = Zstd.compress(uncompressed_data, level: @level)
645653
tmp.write(compressed_data)
646654
rescue => e
647655
log.warn "zstd compression failed: #{e.message}"

0 commit comments

Comments
 (0)