module SignedUrl
Constants
- VERSION
Attributes
encoder[RW]
Public Class Methods
configure() { |encoder| ... }
click to toggle source
# File lib/signed_url.rb, line 10 def configure self.encoder ||= UrlEncoder.new yield(encoder) end
generate(path:, expires:)
click to toggle source
# File lib/signed_url.rb, line 15 def generate(path:, expires:) encoder.encode(path: path, expires: expires) end
validate(key_id:, secret:, path:, host:, expires:, request_url:)
click to toggle source
# File lib/signed_url.rb, line 19 def validate(key_id:, secret:, path:, host:, expires:, request_url:) validating_encoder = UrlEncoder.new validating_encoder.host = host validating_encoder.key_id = key_id validating_encoder.secret = secret url_matched = (request_url == validating_encoder.encode(path: path, expires: expires)) time_in_the_future = Time.at(expires.to_i).utc > Time.now.utc url_matched && time_in_the_future end