28 lines
782 B
Ruby
28 lines
782 B
Ruby
class Image
|
|
attr_reader :insecure_url, :secure_url
|
|
|
|
def initialize(insecure_url, secure_url)
|
|
@insecure_url = insecure_url
|
|
@secure_url = secure_url
|
|
end
|
|
|
|
def self.from_insecure_url(insecure_url)
|
|
Image.new insecure_url, proxy_insecure_url(insecure_url)
|
|
end
|
|
|
|
private
|
|
|
|
def self.proxy_insecure_url(insecure_url)
|
|
if CAMO_HOST && CAMO_KEY
|
|
hexdigest = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha1'), CAMO_KEY, insecure_url)
|
|
uri = Addressable::URI.parse("#{CAMO_HOST}/#{hexdigest}")
|
|
uri.query_values = { url: insecure_url }
|
|
uri.to_s
|
|
else
|
|
uri = Addressable::URI.parse(insecure_url)
|
|
query_values = uri.query_values || {}
|
|
uri.query_values = query_values.merge(NO_CAMO_CONFIG: nil)
|
|
uri.to_s
|
|
end
|
|
end
|
|
end
|