From 22abd4f650b13fad081434340620369942a9ee3a Mon Sep 17 00:00:00 2001 From: Daijiro Fukuda Date: Thu, 14 Nov 2024 19:08:15 +0900 Subject: [PATCH] dependency: remove zstd-ruby Remove `zstd-ruby` from the dependencies. We need to manually install `zstd-ruby` to use `zstd` compression. `zstd-ruby` gem needs to build native extensions. It is not desirable to require a build environment for this optional feature. Signed-off-by: Daijiro Fukuda --- fluent-plugin-s3.gemspec | 2 +- lib/fluent/plugin/s3_compressor_zstd.rb | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/fluent-plugin-s3.gemspec b/fluent-plugin-s3.gemspec index 10ec13b..7ee937c 100644 --- a/fluent-plugin-s3.gemspec +++ b/fluent-plugin-s3.gemspec @@ -19,7 +19,6 @@ Gem::Specification.new do |gem| gem.add_dependency "fluentd", [">= 0.14.22", "< 2"] gem.add_dependency "aws-sdk-s3", "~> 1.60" gem.add_dependency "aws-sdk-sqs", "~> 1.23" - gem.add_dependency 'zstd-ruby' gem.add_development_dependency "rake", ">= 0.9.2" gem.add_development_dependency "test-unit", ">= 3.0.8" gem.add_development_dependency "test-unit-rr", ">= 1.0.3" @@ -27,4 +26,5 @@ Gem::Specification.new do |gem| # aws-sdk-core requires one of ox, oga, libxml, nokogiri or rexml, # and rexml is no longer default gem as of Ruby 3.0. gem.add_development_dependency "rexml" + gem.add_development_dependency "zstd-ruby" end diff --git a/lib/fluent/plugin/s3_compressor_zstd.rb b/lib/fluent/plugin/s3_compressor_zstd.rb index cc8540d..dc48519 100644 --- a/lib/fluent/plugin/s3_compressor_zstd.rb +++ b/lib/fluent/plugin/s3_compressor_zstd.rb @@ -1,5 +1,3 @@ -require 'zstd-ruby' - module Fluent::Plugin class S3Output class ZstdCompressor < Compressor @@ -10,6 +8,14 @@ class ZstdCompressor < Compressor config_param :level, :integer, default: 3 end + 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 + def ext 'zst'.freeze end @@ -27,4 +33,4 @@ def compress(chunk, tmp) end end end -end \ No newline at end of file +end