class Fluent::Plugin::OSSOutput::GzipCommandCompressor
This class uses gzip command to compress chunks.
Public Instance Methods
compress(chunk, file)
click to toggle source
# File lib/fluent/plugin/oss_compressor_gzip_command.rb, line 24 def compress(chunk, file) path = if @buffer_type == 'file' chunk.path else out = Tempfile.new('chunk-gzip-out-') out.binmode chunk.write_to(out) out.close out.path end res = system "gzip #{@command_parameter} -c #{path} > #{file.path}" unless res log.warn "failed to execute gzip command. Fallback to GzipWriter. status = #{$?}" begin file.truncate(0) gw = Zlib::GzipWriter.new(file) chunk.write_to(gw) gw.close ensure gw.close rescue nil end end ensure out.close(true) rescue nil unless @buffer_type == 'file' end
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/oss_compressor_gzip_command.rb, line 10 def configure(conf) super check_command('gzip') end
content_type()
click to toggle source
# File lib/fluent/plugin/oss_compressor_gzip_command.rb, line 20 def content_type 'application/x-gzip'.freeze end
ext()
click to toggle source
# File lib/fluent/plugin/oss_compressor_gzip_command.rb, line 16 def ext 'gz'.freeze end