Class: S3HttpGet::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/s3-http-get/request.rb

Instance Method Summary collapse

Constructor Details

#initialize(uri, profile_name: nil) ⇒ Request



7
8
9
10
11
12
13
14
15
# File 'lib/s3-http-get/request.rb', line 7

def initialize(uri, profile_name: nil)
  @uri = uri.is_a?(URI::HTTP) ? uri : URI(uri)

  # cf. Aws::CredentialProviderChain
  @credentials = Aws::Credentials.new(ENV["AWS_ACCESS_KEY_ID"], ENV["AWS_SECRET_ACCESS_KEY"])
  unless @credentials.set?
    @credentials = Aws::SharedCredentials.new(profile_name: profile_name)
  end
end

Instance Method Details

#executeNet::HTTPResponse



18
19
20
21
22
23
24
25
# File 'lib/s3-http-get/request.rb', line 18

def execute
  Net::HTTP.start(@uri.host, @uri.port, use_ssl: @uri.scheme == "https") do |http|
    request = Net::HTTP::Get.new(@uri)
    # cf. http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html
    request.initialize_http_header(build_signature(@uri, @credentials).headers)
    http.request(request)
  end
end