class Fluent::Plugin::S3Output::ZstdCompressor

Public Class Methods

new(opts = {}) click to toggle source
# File lib/fluent/plugin/s3_compressor_zstd.rb, line 11
def initialize(opts = {})
  super
  require 'zstd-ruby'
rescue LoadError => e
  log.error "failed to load zstd-ruby gem. You need to manually install 'zstd-ruby' gem to use 'zstd'.", error: e.message
  raise Fluent::ConfigError, "failed to load 'zstd-ruby' gem"
end

Public Instance Methods

compress(chunk, tmp) click to toggle source
# File lib/fluent/plugin/s3_compressor_zstd.rb, line 27
def compress(chunk, tmp)
  compressed = Zstd.compress(chunk.read, level: @compress_config.level)
  tmp.write(compressed)
rescue => e
  log.warn "zstd compression failed: #{e.message}"
  raise
end
content_type() click to toggle source
# File lib/fluent/plugin/s3_compressor_zstd.rb, line 23
def content_type
  'application/x-zst'.freeze
end
ext() click to toggle source
# File lib/fluent/plugin/s3_compressor_zstd.rb, line 19
def ext
  'zst'.freeze
end