Class: Uploadcare::SignedUrlGenerators::AkamaiGenerator

Inherits:
BaseGenerator
  • Object
show all
Defined in:
lib/uploadcare/signed_url_generators/akamai_generator.rb

Overview

Akamai signed URL generator.

Constant Summary collapse

UUID_REGEX =

UUID validation regex.

/\A[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}\z/i
TEMPLATE =

Akamai token template.

'https://{cdn_host}/{uuid}/?token=exp={expiration}{delimiter}acl={acl}{delimiter}hmac={token}'

Instance Method Summary collapse

Instance Method Details

#generate_url(uuid, acl = uuid, wildcard: false) ⇒ Object

Raises:

  • (ArgumentError)


13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/uploadcare/signed_url_generators/akamai_generator.rb', line 13

def generate_url(uuid, acl = uuid, wildcard: false)
  raise ArgumentError, 'Must contain valid UUID' unless valid?(uuid)

  formatted_acl = build_acl(uuid, acl, wildcard: wildcard)
  expire = build_expire
  signature = build_signature(expire, formatted_acl)

  TEMPLATE.gsub('{delimiter}', delimiter)
          .sub('{cdn_host}', sanitized_string(cdn_host))
          .sub('{uuid}', sanitized_string(uuid))
          .sub('{acl}', formatted_acl)
          .sub('{expiration}', expire)
          .sub('{token}', signature)
end