File tree Expand file tree Collapse file tree 1 file changed +19
-7
lines changed
Expand file tree Collapse file tree 1 file changed +19
-7
lines changed Original file line number Diff line number Diff line change @@ -632,20 +632,32 @@ def compress(chunk, tmp)
632632 end
633633
634634 class ZstdCompressor < Compressor
635+ require 'zstd-ruby'
636+
637+ DEFAULT_LEVEL = 3
638+
639+ def initialize ( options = { } )
640+ @level = ( options . is_a? ( Hash ) && options [ :level ] ) || DEFAULT_LEVEL
641+ end
642+
635643 def ext
636644 'zst' . freeze
637645 end
638-
646+
639647 def content_type
640648 'application/x-zst' . freeze
641649 end
642-
650+
643651 def compress ( chunk , tmp )
644- compressed_data = Zstd . compress ( chunk . read , level : @level )
645- tmp . write ( compressed_data )
646- rescue => e
647- log . warn "zstd compression failed: #{ e . message } "
648- raise e
652+ begin
653+ data = chunk . read . gsub ( /\r \n / , "\n " ) . force_encoding ( 'UTF-8' )
654+ compressed = Zstd . compress ( data , level : @level )
655+ tmp . binmode
656+ tmp . write ( compressed )
657+ rescue => e
658+ log . warn "zstd compression failed: #{ e . message } "
659+ raise e
660+ end
649661 end
650662 end
651663
You can’t perform that action at this time.
0 commit comments