Sha256: 40c21397939de1189b04b719fe8a15e73f43648773da95b36c824d1678bacc9f
Contents?: true
Size: 1.27 KB
Versions: 2
Compression:
Stored size: 1.27 KB
Contents
module Fluent class AzureStorageOutput class GzipCommandCompressor < Compressor AzureStorageOutput.register_compressor('gzip_command', self) config_param :command_parameter, :string, :default => '' def configure(conf) super check_command('gzip') end def ext 'gz'.freeze end def content_type 'application/x-gzip'.freeze end def compress(chunk, tmp) chunk_is_file = @buffer_type == 'file' path = if chunk_is_file chunk.path else w = Tempfile.new("chunk-gzip-tmp") chunk.write_to(w) w.close w.path end res = system "gzip #{@command_parameter} -c #{path} > #{tmp.path}" unless res log.warn "failed to execute gzip command. Fallback to GzipWriter. status = #{$?}" begin tmp.truncate(0) gw = Zlib::GzipWriter.new(tmp) chunk.write_to(gw) gw.close ensure gw.close rescue nil end end ensure unless chunk_is_file w.close(true) rescue nil end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fluent-plugin-azurestorage-0.1.0 | lib/fluent/plugin/azurestorage_compressor_gzip_command.rb |
fluent-plugin-azurestorage-0.0.8 | lib/fluent/plugin/azurestorage_compressor_gzip_command.rb |