class Fluent::Plugin::S3Input::GzipExtractor

Public Instance Methods

content_type() click to toggle source
# File lib/fluent/plugin/in_s3.rb, line 400
def content_type
  'application/x-gzip'.freeze
end
ext() click to toggle source
# File lib/fluent/plugin/in_s3.rb, line 396
def ext
  'gz'.freeze
end
extract(io) click to toggle source

bugs.ruby-lang.org/issues/9790 bugs.ruby-lang.org/issues/11180 github.com/exAspArk/multiple_files_gzip_reader

# File lib/fluent/plugin/in_s3.rb, line 407
def extract(io)
  parts = []
  loop do
    unused = nil
    Zlib::GzipReader.wrap(io) do |gz|
      parts << gz.read
      unused = gz.unused
      gz.finish
    end
    io.pos -= unused ? unused.length : 0
    break if io.eof?
  end
  io.close
  parts.join
end