class SignedUrl::UrlEncoder
Attributes
host[RW]
key_id[RW]
secret[RW]
Public Instance Methods
encode(path:, expires:)
click to toggle source
# File lib/signed_url.rb, line 33 def encode(path:, expires:) expires = expires.to_i digest = OpenSSL::Digest.new('sha256') hmac = OpenSSL::HMAC.digest(digest, @secret, "GET\n\n\n#{expires}\n/#{path}") signature = CGI.escape(URI.escape(Base64.encode64(hmac).strip)) generate_url(host: @host, path: path, access_key_id: @key_id, expires: expires, signature: signature) end
Private Instance Methods
generate_url(host:, path:, access_key_id:, expires:, signature:)
click to toggle source
# File lib/signed_url.rb, line 43 def generate_url(host:, path:, access_key_id:, expires:, signature:) "#{host}#{path}?access_key_id=#{access_key_id}&expires=#{expires}&signature=#{signature}" end