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/signed_url.rb, line 28
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/signed_url.rb, line 38
def generate_url(host:, path:, access_key_id:, expires:, signature:)
  "#{host}#{path}?access_key_id=#{access_key_id}&expires=#{expires}&signature=#{signature}"
end