Class: Ungulate::FileUpload

Inherits:
Object
  • Object
show all
Defined in:
lib/ungulate/file_upload.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ FileUpload

Returns a new instance of FileUpload.



21
22
23
24
25
26
27
28
# File 'lib/ungulate/file_upload.rb', line 21

def initialize(options = {})
  self.bucket_url = options[:bucket_url]
  self.key = options[:key]

  if options[:policy]
    self.policy = options[:policy]
  end
end

Instance Attribute Details

#bucket_urlObject

Returns the value of attribute bucket_url.



5
6
7
# File 'lib/ungulate/file_upload.rb', line 5

def bucket_url
  @bucket_url
end

#keyObject

Returns the value of attribute key.



5
6
7
# File 'lib/ungulate/file_upload.rb', line 5

def key
  @key
end

Class Method Details

.configObject



8
9
10
# File 'lib/ungulate/file_upload.rb', line 8

def config
  Ungulate.configuration
end

.enqueue(job_description) ⇒ Object



16
17
18
# File 'lib/ungulate/file_upload.rb', line 16

def enqueue(job_description)
  queue.push(job_description.to_yaml)
end

.queueObject



12
13
14
# File 'lib/ungulate/file_upload.rb', line 12

def queue
  @queue ||= config.queue.call
end

Instance Method Details

#access_key_idObject



34
35
36
# File 'lib/ungulate/file_upload.rb', line 34

def access_key_id
  config.access_key_id
end

#aclObject



38
39
40
# File 'lib/ungulate/file_upload.rb', line 38

def acl
  condition 'acl'
end

#condition(key) ⇒ Object



42
43
44
45
# File 'lib/ungulate/file_upload.rb', line 42

def condition(key)
  found_key, found_value = conditions.find {|condition| condition.first == key}
  found_value if found_value
end

#conditionsObject



47
48
49
50
# File 'lib/ungulate/file_upload.rb', line 47

def conditions
  @conditions ||=
    @policy_ruby['conditions'].map {|condition| condition.to_a.flatten}
end

#configObject



30
31
32
# File 'lib/ungulate/file_upload.rb', line 30

def config
  self.class.config
end

#policyObject



52
53
54
55
56
# File 'lib/ungulate/file_upload.rb', line 52

def policy
  Base64.encode64(
    ActiveSupport::JSON.encode(@policy_ruby)
  ).gsub("\n", '')
end

#policy=(new_policy) ⇒ Object



58
59
60
61
62
# File 'lib/ungulate/file_upload.rb', line 58

def policy=(new_policy)
  new_policy['expiration'] = new_policy['expiration'].utc
  @policy_ruby = new_policy
  policy
end

#signatureObject



68
69
70
71
72
73
74
# File 'lib/ungulate/file_upload.rb', line 68

def signature
  Base64.encode64(
    OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('sha1'),
                         config.secret_access_key,
                         policy)
  ).gsub("\n", '')
end

#success_action_redirectObject



64
65
66
# File 'lib/ungulate/file_upload.rb', line 64

def success_action_redirect
  condition 'success_action_redirect'
end