require 'sidekiq' require 'stringio' require 'zlib' require 'fog' Sidekiq.configure_server do |config| config.server_middleware do |chain| chain.remove Sidekiq::Middleware::Server::RetryJobs end end class S3Worker include Sidekiq::Worker def perform @storage = Fog::Storage.new( provider: 'AWS', aws_access_key_id: ENV['key'], aws_secret_access_key: ENV['secret'], path_style: true ) 1000.times do |i| mime_type = 'text/html' strio = StringIO.open('', 'w') compressor = Zlib::GzipWriter.new(strio) compressor.write('') compressor.close params = { "x-amz-acl" => "public-read", "Content-Type" => mime_type, "Content-Encoding" => 'gzip', "Expires" => 60000 } @storage.put_object(ENV['bucket'], "deadlock/#{i}.html", strio.string, params) end end end