Class: CarrierWaveDirect::Policies::AwsBase64Sha1
- Inherits:
-
Base
- Object
- Base
- CarrierWaveDirect::Policies::AwsBase64Sha1
show all
- Defined in:
- lib/carrierwave_direct/policies/aws_base64_sha1.rb
Instance Attribute Summary
Attributes inherited from Base
#uploader
Instance Method Summary
collapse
Methods inherited from Base
#clear!, #initialize, #policy
Instance Method Details
#direct_fog_hash(policy_options = {}) ⇒ Object
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/carrierwave_direct/policies/aws_base64_sha1.rb', line 15
def direct_fog_hash(policy_options = {})
{
key: uploader.key,
AWSAccessKeyId: uploader.aws_access_key_id,
acl: uploader.acl,
policy: policy(policy_options),
signature: signature,
uri: uploader.direct_fog_url
}
end
|
#generate(options) {|conditions| ... } ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/carrierwave_direct/policies/aws_base64_sha1.rb', line 26
def generate(options, &block)
return @policy if @policy.present?
conditions = []
conditions << ["starts-with", "$utf8", ""] if options[:enforce_utf8]
conditions << ["starts-with", "$key", uploader.key.sub(/#{Regexp.escape(CarrierWaveDirect::Uploader::FILENAME_WILDCARD)}\z/, "")]
conditions << ["starts-with", "$Content-Type", ""] if uploader.will_include_content_type
conditions << {"bucket" => uploader.fog_directory}
conditions << {"acl" => uploader.acl}
if uploader.use_action_status
conditions << {"success_action_status" => uploader.success_action_status}
else
conditions << {"success_action_redirect" => uploader.success_action_redirect}
end
conditions << ["content-length-range", options[:min_file_size], options[:max_file_size]]
yield conditions if block_given?
@policy = Base64.encode64(
{
'expiration' => (Time.now + options[:expiration]).utc.iso8601,
'conditions' => conditions
}.to_json
).gsub("\n","")
end
|
#signature ⇒ Object
6
7
8
9
10
11
12
13
|
# File 'lib/carrierwave_direct/policies/aws_base64_sha1.rb', line 6
def signature
Base64.encode64(
OpenSSL::HMAC.digest(
OpenSSL::Digest.new('sha1'),
uploader.aws_secret_access_key, policy
)
).gsub("\n", "")
end
|