s3_file_field 1.0.7 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/assets/javascripts/s3_file_field.js.coffee +18 -5
- data/lib/s3_file_field/config_aws.rb +1 -1
- data/lib/s3_file_field/s3_uploader.rb +4 -3
- data/lib/s3_file_field/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 771a79d8a1002b47f2dfcf1f24022292a5212590
|
4
|
+
data.tar.gz: 4ebc755adee94a38cd0baac8dfb6657b9f637a2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5e2da78facafbcd31cf7d597e5bed3cf335ae20efcfc2864b08a4035d2a6c4f18b60426bffe0d1437bb1354f29ce35256b8c8c8b48741e231e0979939807dc9
|
7
|
+
data.tar.gz: cdd64aa49a7b27bb78974baab71c2796e41cb092ff3492e6298af99fe39d88902e3eccd3a03dbe0de19ea1a9240aef194acfada54d68bea25f7a78b635e2a764
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@ jQuery File Upload extension for direct uploading to Amazon S3 using CORS
|
|
7
7
|
|
8
8
|
Works as an extension of [jQuery File Upload](http://blueimp.github.io/jQuery-File-Upload/) JavaScript plugin and supports IE 7-10.
|
9
9
|
|
10
|
-
|
10
|
+
It supports multiple upload, and per-input configuration.
|
11
11
|
|
12
12
|
## Installation
|
13
13
|
|
@@ -63,7 +63,7 @@ jQuery.fn.S3FileField = (options) ->
|
|
63
63
|
if add? then add(e, data) else data.submit()
|
64
64
|
|
65
65
|
done: (e, data) ->
|
66
|
-
data.result = build_content_object
|
66
|
+
data.result = build_content_object(data.files[0], data.result)
|
67
67
|
done(e, data) if done?
|
68
68
|
|
69
69
|
fail: (e, data) ->
|
@@ -85,11 +85,24 @@ jQuery.fn.S3FileField = (options) ->
|
|
85
85
|
|
86
86
|
jQuery.extend settings, options
|
87
87
|
|
88
|
-
|
89
|
-
|
88
|
+
to_s3_filename = (filename) ->
|
89
|
+
trimmed = filename.replace(/^\s+|\s+$/g,'')
|
90
|
+
strip_before_slash = trimmed.split('\\').slice(-1)[0]
|
91
|
+
double_encode_quote = strip_before_slash.replace('"', '%22')
|
92
|
+
encodeURIComponent(double_encode_quote)
|
93
|
+
|
94
|
+
build_content_object = (file, result) ->
|
95
|
+
|
90
96
|
content = {}
|
91
|
-
|
92
|
-
|
97
|
+
|
98
|
+
if result # Use the S3 response to set the URL to avoid character encodings bugs
|
99
|
+
content.url = $(result).find("Location").text()
|
100
|
+
content.filepath = $('<a />').attr('href', content.url)[0].pathname
|
101
|
+
else # IE <= 9 returns null result so hack is necessary
|
102
|
+
domain = settings.url.replace(/\/+$/, '').replace(/^(https?:)?/, 'https:')
|
103
|
+
content.filepath = finalFormData[file.unique_id]['key'].replace('/${filename}', '')
|
104
|
+
content.url = domain + '/' + content.filepath + '/' + to_s3_filename(file.name)
|
105
|
+
|
93
106
|
content.filename = file.name
|
94
107
|
content.filesize = file.size if 'size' of file
|
95
108
|
content.filetype = file.type if 'type' of file
|
@@ -4,7 +4,7 @@ module S3FileField
|
|
4
4
|
class Config
|
5
5
|
include Singleton
|
6
6
|
|
7
|
-
ATTRIBUTES = [:access_key_id, :secret_access_key, :bucket, :prefix_to_clean, :region, :url]
|
7
|
+
ATTRIBUTES = [:access_key_id, :secret_access_key, :bucket, :prefix_to_clean, :region, :url, :key_starts_with]
|
8
8
|
|
9
9
|
attr_accessor *ATTRIBUTES
|
10
10
|
end
|
@@ -12,7 +12,8 @@ module S3FileField
|
|
12
12
|
expiration: 10.hours.from_now.utc.iso8601,
|
13
13
|
max_file_size: 500.megabytes,
|
14
14
|
conditions: [],
|
15
|
-
key_starts_with: 'uploads/'
|
15
|
+
key_starts_with: S3FileField.config.key_starts_with || 'uploads/',
|
16
|
+
region: S3FileField.config.region || 's3'
|
16
17
|
}
|
17
18
|
|
18
19
|
@key = original_options[:key]
|
@@ -59,7 +60,7 @@ module S3FileField
|
|
59
60
|
end
|
60
61
|
|
61
62
|
def url
|
62
|
-
"//#{@options[:bucket]}.
|
63
|
+
"//#{@options[:bucket]}.#{@options[:region]}.amazonaws.com/"
|
63
64
|
end
|
64
65
|
|
65
66
|
def policy
|
@@ -84,7 +85,7 @@ module S3FileField
|
|
84
85
|
def signature
|
85
86
|
Base64.encode64(
|
86
87
|
OpenSSL::HMAC.digest(
|
87
|
-
OpenSSL::Digest
|
88
|
+
OpenSSL::Digest.new('sha1'),
|
88
89
|
@options[:secret_access_key], policy
|
89
90
|
)
|
90
91
|
).gsub("\n", '')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: s3_file_field
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Stankiewicz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -130,15 +130,15 @@ executables: []
|
|
130
130
|
extensions: []
|
131
131
|
extra_rdoc_files: []
|
132
132
|
files:
|
133
|
+
- README.md
|
134
|
+
- app/assets/javascripts/s3_file_field.js.coffee
|
135
|
+
- lib/s3_file_field.rb
|
133
136
|
- lib/s3_file_field/config_aws.rb
|
134
137
|
- lib/s3_file_field/engine.rb
|
135
138
|
- lib/s3_file_field/form_helper.rb
|
136
139
|
- lib/s3_file_field/railtie.rb
|
137
140
|
- lib/s3_file_field/s3_uploader.rb
|
138
141
|
- lib/s3_file_field/version.rb
|
139
|
-
- lib/s3_file_field.rb
|
140
|
-
- app/assets/javascripts/s3_file_field.js.coffee
|
141
|
-
- README.md
|
142
142
|
homepage: https://github.com/sheerun/s3_file_field
|
143
143
|
licenses:
|
144
144
|
- MIT
|
@@ -159,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
159
159
|
version: '0'
|
160
160
|
requirements: []
|
161
161
|
rubyforge_project:
|
162
|
-
rubygems_version: 2.
|
162
|
+
rubygems_version: 2.2.1
|
163
163
|
signing_key:
|
164
164
|
specification_version: 4
|
165
165
|
summary: jQuery File Upload extension for direct uploading to Amazon S3 using CORS
|