Skip to content

Commit

Permalink
fix: Improve ZstdCompressor implementation
Browse files Browse the repository at this point in the history
Signed-off-by: ddukbg <[email protected]>
  • Loading branch information
ddukbg committed Nov 2, 2024
1 parent 7e28a32 commit 85e0f50
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions lib/fluent/plugin/out_s3.rb
Original file line number Diff line number Diff line change
Expand Up @@ -632,17 +632,26 @@ def compress(chunk, tmp)
end

class ZstdCompressor < Compressor
require 'zstd-ruby'

DEFAULT_LEVEL = 3

def initialize(level = nil)
@level = level || DEFAULT_LEVEL
end

def ext
'zst'.freeze
end

def content_type
'application/x-zst'.freeze
end

def compress(chunk, tmp)
compressed_data = Zstd.compress(chunk.read, level: @level)
tmp.write(compressed_data)
data = chunk.read
compressed = Zstd.compress(data, level: @level)
tmp.write(compressed)
rescue => e
log.warn "zstd compression failed: #{e.message}"
raise e
Expand Down

0 comments on commit 85e0f50

Please sign in to comment.