Method: Paperclip::Storage::S3#s3_interface

Defined in:
lib/paperclip/storage/s3.rb

#s3_interfaceObject



233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
# File 'lib/paperclip/storage/s3.rb', line 233

def s3_interface
  @s3_interface ||= begin
    config = { region: s3_region }

    if using_http_proxy?

      proxy_opts = { :host => http_proxy_host }
      proxy_opts[:port] = http_proxy_port if http_proxy_port
      if http_proxy_user
        userinfo = http_proxy_user.to_s
        userinfo += ":#{http_proxy_password}" if http_proxy_password
        proxy_opts[:userinfo] = userinfo
      end
      config[:proxy_uri] = URI::HTTP.build(proxy_opts)
    end

    config[:use_accelerate_endpoint] = use_accelerate_endpoint?

    [:access_key_id, :secret_access_key, :credential_provider, :credentials].each do |opt|
      config[opt] = s3_credentials[opt] if s3_credentials[opt]
    end

    obtain_s3_instance_for(config.merge(@s3_options))
  end
end