Sha256: 47f19e9386084a070dd131a267b2ebf1abe720945ad472ebe4ad869fdadb0dfd
Contents?: true
Size: 753 Bytes
Versions: 4
Compression:
Stored size: 753 Bytes
Contents
module S3Relay class PrivateUrl < S3Relay::Base attr_reader :expires, :path def initialize(uuid, file, options={}) filename = Addressable::URI.escape(file).gsub("+", "%2B") @path = [uuid, filename].join("/") @expires = (options[:expires] || 10.minutes.from_now).to_i end def generate "#{endpoint}/#{path}?#{params}" end private def params [ "AWSAccessKeyId=#{access_key_id}", "Expires=#{expires}", "Signature=#{signature}" ].join("&") end def signature string = "GET\n\n\n#{expires}\n/#{bucket}/#{path}" hmac = OpenSSL::HMAC.digest(digest, secret_access_key, string) CGI.escape(Base64.encode64(hmac).strip) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
s3_relay-0.7.0 | lib/s3_relay/private_url.rb |
s3_relay-0.6.2 | lib/s3_relay/private_url.rb |
s3_relay-0.6.1 | lib/s3_relay/private_url.rb |
s3_relay-0.6.0 | lib/s3_relay/private_url.rb |