Class: SpreeCmCommissioner::Media::SignedPathGenerator

Inherits:
Signer
  • Object
show all
Includes:
Interactor
Defined in:
app/interactors/spree_cm_commissioner/media/signed_path_generator.rb

Instance Method Summary collapse

Methods inherited from Signer

#distribution_domain, #expiration_time, #key_pair_id, #private_key, #signer, #url

Instance Method Details

#callObject



8
9
10
# File 'app/interactors/spree_cm_commissioner/media/signed_path_generator.rb', line 8

def call
  sign
end

#object_pathObject



32
33
34
# File 'app/interactors/spree_cm_commissioner/media/signed_path_generator.rb', line 32

def object_path
  File.dirname(s3_object_key)
end

#policyObject



19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/interactors/spree_cm_commissioner/media/signed_path_generator.rb', line 19

def policy
  {
    'Statement' => [
      {
        'Resource' => "#{distribution_domain}/#{object_path}/*",
        'Condition' => {
          'DateLessThan' => { 'AWS:EpochTime' => expiration_time }
        }
      }
    ]
  }
end

#signObject



12
13
14
15
16
# File 'app/interactors/spree_cm_commissioner/media/signed_path_generator.rb', line 12

def sign
  # Generate the signed URL
  result = signer.signed_url(url, policy: policy.to_json)
  context.result = result
end