uploadbox 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 605fe90f8d3f385da36ee21257ab2c4d6783b513
4
- data.tar.gz: fcb1983a55e7e3c103c45271a10229e720fe35e3
3
+ metadata.gz: 793534702191f8ac2e654b13f87e970320effc4e
4
+ data.tar.gz: 27ebcf04dfdd0e5af5bf96563f6a49cbe5cf6ead
5
5
  SHA512:
6
- metadata.gz: 35a73a6ce9ed2127ecd4199833210d53036afe2a2989988ccca30c281545a066bbc537de43d9c67e4b2b00e6402392642d117b9532146dd870c69bf00292f584
7
- data.tar.gz: 668beadd3a2ddf04cfbf1d4a88e4b499d7136c9284e5842d4d43e3539440e33b88225945659319aa1815d0f99339babcf2cc81729f003b7fe3b93a9434c58625
6
+ metadata.gz: 330cf7e386cf7f18807f9b81170b3bd0efeb7bf0e2b6c6800c353e471d4dfc23ff3e6f718c9b53f3249feb8fcb83ddd75a702637271e584f1f2d8b34c10e02a8
7
+ data.tar.gz: c7811bc5e8d1b982f808da97d7742e7cb72843d00bdc7189f60e111d513573dc7623f4508d86a2b8e53d1a9edaee8d536e3a35161833e12143a3974c0caa7eec
data/README.md CHANGED
@@ -33,9 +33,14 @@ Migrate database
33
33
  rake db:migrate
34
34
  ```
35
35
 
36
- Update `routes.rb`
36
+ Create a bucket on S3 (US region)
37
+
38
+ Set environmet variables
37
39
  ```
38
- mount Uploadbox::Engine => '/uploadbox', as: :uploadbox
40
+ S3_KEY=AAAA123BBBB
41
+ S3_SECRET=abc123ABcEffgee122
42
+ S3_REGION=sa-east-1
43
+ S3_BUCKET=uploads
39
44
  ```
40
45
 
41
46
  ## Usage
@@ -68,3 +73,16 @@ For a post with a picture:
68
73
  ```
69
74
  Post.update_picture_versions!
70
75
  ```
76
+
77
+
78
+ ## Heroku
79
+ Set environmet variables
80
+ ```
81
+ HEROKU_API_KEY=ab12acvc12
82
+ HEROKU_APP=your-app-name
83
+ ```
84
+
85
+ Add Redis to Go addon
86
+ ```
87
+ heroku addons:add rediscloud:20
88
+ ```
@@ -7,6 +7,8 @@ class @ImageUploader
7
7
  @idInput = @container.find('[data-item="id"]')
8
8
  @container.find('a.btn.fileupload-exists').bind('ajax:success', @delete)
9
9
  @thumbContainer = @container.find('.fileupload-preview.thumbnail')
10
+
11
+ @fileInput.show()
10
12
 
11
13
  @fileInput.fileupload
12
14
  type: 'POST'
@@ -14,17 +16,28 @@ class @ImageUploader
14
16
  replaceFileInput: false
15
17
  autoUpload: true
16
18
  formData: @getFormData
19
+ dropZone: @container
20
+ pasteZone: @container
17
21
  add: @add
18
22
  progress: @progress
19
23
  done: @done
20
24
 
21
25
  add: (e, data) =>
22
- @loader = $('<div class="progress progress-striped active"><div class="bar" style="width: 0%;"></div></div>').hide()
23
- @preview.prepend(@loader.fadeIn())
24
- data.submit()
26
+ @file = data.files[0]
27
+
28
+ if @loader
29
+ @loader.detach()
30
+
31
+ if @verifyProcessingInterval
32
+ clearInterval(@verifyProcessingInterval)
33
+
34
+ if @file.type.match /gif|jpe?g|png/
35
+ @loader = $('<div class="progress progress-striped active"><div class="bar" style="width: 0%;"></div></div>').hide()
36
+ @preview.prepend(@loader.fadeIn())
37
+ data.submit()
25
38
 
26
39
  getFormData: (arg) =>
27
- file = @fileInput.get(0).files[0]
40
+ file = @file
28
41
  @filePath = @container.find('input[name="key"]').val() + file.name
29
42
  [
30
43
  { name: 'key', value: @filePath },
@@ -1,5 +1,20 @@
1
1
  module Uploadbox
2
2
  module ImgHelper
3
+ def s3_policy
4
+ Base64.encode64(policy_data.to_json).gsub("\n", "")
5
+ end
6
+
7
+
8
+ def s3_signature
9
+ Base64.encode64(
10
+ OpenSSL::HMAC.digest(
11
+ OpenSSL::Digest::Digest.new('sha1'),
12
+ ENV['S3_SECRET'],
13
+ s3_policy
14
+ )
15
+ ).gsub("\n", "")
16
+ end
17
+
3
18
  def img(*args)
4
19
  upload = args[0]
5
20
  if upload.is_a? CarrierWave::Uploader::Base
@@ -8,5 +23,19 @@ module Uploadbox
8
23
  image_tag(*args)
9
24
  end
10
25
  end
26
+
27
+ private
28
+ def policy_data
29
+ {
30
+ expiration: 10.hours.from_now.utc.iso8601,
31
+ conditions: [
32
+ ["starts-with", "$key", 'uploads/'],
33
+ ["content-length-range", 0, 500.megabytes],
34
+ ["starts-with","$content-type",""],
35
+ {bucket: ENV['S3_BUCKET']},
36
+ {acl: 'public-read'}
37
+ ]
38
+ }
39
+ end
11
40
  end
12
41
  end
@@ -17,9 +17,9 @@
17
17
  span.fileupload-new = choose_label
18
18
  span.fileupload-exists = update_label
19
19
 
20
- input type="file" name="image[file]" data-callback-url="#{uploadbox.images_path}" data-find-url="#{uploadbox.find_images_path(format: :json)}" data-url="https://#{ENV['S3_BUCKET']}.s3.amazonaws.com/" data-secure-random="#{secure_random}"
21
- input type="hidden" name="policy" value="#{policy}"
22
- input type="hidden" name="signature" value="#{signature}"
20
+ input type="file" name="image[file]" data-callback-url="#{uploadbox.images_path}" data-find-url="#{uploadbox.find_images_path(format: :json)}" data-url="https://#{ENV['S3_BUCKET']}.s3.amazonaws.com/" data-secure-random="#{secure_random}" accept="image/x-png, image/gif, image/jpeg" style="display: none"
21
+ input type="hidden" name="policy" value="#{s3_policy}"
22
+ input type="hidden" name="signature" value="#{s3_signature}"
23
23
  input type="hidden" name="AWSAccessKeyId" value="#{ENV['S3_KEY']}"
24
24
  input type="hidden" name="acl" value="public-read"
25
25
  input type="hidden" name="key" value="uploads/#{secure_random}/"
@@ -14,6 +14,14 @@ module Uploadbox
14
14
  append_to_file '.gitignore', "\npublic/uploads"
15
15
  end
16
16
 
17
+ def copy_procfile
18
+ copy_file 'Procfile', 'Procfile'
19
+ end
20
+
21
+ def add_route
22
+ route "mount Uploadbox::Engine => '/uploadbox', as: :uploadbox"
23
+ end
24
+
17
25
  def create_migration
18
26
  migration_template 'migrate/create_images.rb', 'db/migrate/create_images.rb'
19
27
  end
@@ -0,0 +1 @@
1
+ web: bundle exec rails server -p $PORT
@@ -3,19 +3,17 @@ Uploadbox.retina_quality = 30
3
3
  Uploadbox.image_quality = 70
4
4
 
5
5
  if Rails.env.production?
6
- REDIS = Redis.connect url: ENV["OPENREDIS_URL"]
6
+ REDIS = Redis.connect(url: ENV["REDISCLOUD_URL"])
7
7
  Resque.redis = REDIS
8
- end
8
+ Resque.after_fork = Proc.new { ActiveRecord::Base.establish_connection }
9
9
 
10
- if Rails.env.production?
11
10
  CarrierWave.configure do |config|
12
11
  config.storage = :fog
13
12
 
14
13
  config.fog_credentials = {
15
14
  provider: 'AWS',
16
15
  aws_access_key_id: ENV['S3_KEY'],
17
- aws_secret_access_key: ENV['S3_SECRET'],
18
- region: ENV['S3_REGION']
16
+ aws_secret_access_key: ENV['S3_SECRET']
19
17
  }
20
18
 
21
19
  config.fog_directory = ENV['S3_BUCKET']
@@ -58,7 +58,7 @@ module Uploadbox
58
58
 
59
59
  # Uploabox::PostPictureUploader < UploadBox::ImgProcessing < CarrierWave
60
60
  dynamic_uploader = Class.new(Uploadbox::ImageProcessingUploader)
61
- Uploadbox.const_set(self.class.to_s + upload_name.to_s.camelize + 'Uploader', dynamic_uploader)
61
+ Uploadbox.const_set(self.name.demodulize + 'Uploader', dynamic_uploader)
62
62
  dynamic_uploader.class_eval do
63
63
  upload_versions.each do |version_name, dimensions|
64
64
  if options[:retina]
@@ -1,3 +1,3 @@
1
1
  module Uploadbox
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uploadbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julio Protzek
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-02 00:00:00.000000000 Z
12
+ date: 2013-10-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -151,6 +151,20 @@ dependencies:
151
151
  - - ~>
152
152
  - !ruby/object:Gem::Version
153
153
  version: 1.25.0
154
+ - !ruby/object:Gem::Dependency
155
+ name: redis
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ~>
159
+ - !ruby/object:Gem::Version
160
+ version: 3.0.4
161
+ type: :runtime
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ~>
166
+ - !ruby/object:Gem::Version
167
+ version: 3.0.4
154
168
  - !ruby/object:Gem::Dependency
155
169
  name: heroku-api
156
170
  requirement: !ruby/object:Gem::Requirement
@@ -352,6 +366,7 @@ files:
352
366
  - lib/generators/uploadbox/image/templates/initializers/uploadbox.rb
353
367
  - lib/generators/uploadbox/image/templates/migrate/create_images.rb
354
368
  - lib/generators/uploadbox/image/templates/models/image.rb
369
+ - lib/generators/uploadbox/image/templates/Procfile
355
370
  - lib/generators/uploadbox/image/USAGE
356
371
  - lib/heroku_resque_auto_scale.rb
357
372
  - lib/tasks/uploadbox_tasks.rake