qoobaa-s3_upload_form 0.2.2 → 0.3.0

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.
data/README.markdown CHANGED
@@ -1,11 +1,28 @@
1
1
  # s3_upload_form
2
2
 
3
3
  ### Usage
4
- <%= s3_upload_form_tag :key => 'uploads',
5
- :redirect => image_processing_url,
6
- :acl => 'public-read',
7
- :max_filesize => 0..5.megabytes,
8
- :submit => submit_tag("Upload!") %>
4
+ <% form_tag s3_bucket_url, :multipart => true do -%>
5
+ <%= s3_signature_tag :key => "uploads",
6
+ :redirect => image_processing_url,
7
+ :acl => "public-read",
8
+ :max_filesize => 0..5.megabytes,
9
+ :submit => submit_tag("Upload!") %>
10
+ <%= label_tag :file, "File" %>
11
+ <br/>
12
+ <%= file_field_tag :file %>
13
+ <br/>
14
+ <%= submit_tag "Upload" %>
15
+ <% end -%>
16
+
17
+ Remember to turn off the request forgery protection in the controller:
18
+
19
+ class UploadsController < ApplicationController
20
+ self.allow_forgery_protection = false
21
+
22
+ def new
23
+ # ...
24
+ end
25
+ end
9
26
 
10
27
  ### Configuration
11
28
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.3.0
@@ -1,20 +1,26 @@
1
1
  module S3UploadForm
2
2
  module Helpers
3
- def s3_upload_form_tag(options = {})
3
+ def s3_bucket_url(protocol = "http")
4
+ bucket = S3UploadForm.configuration.bucket
5
+
6
+ raise "Please configure S3UploadForm before use" if bucket.blank?
7
+
8
+ "#{protocol}://#{bucket}.s3.amazonaws.com/"
9
+ end
10
+
11
+ def s3_signature_tag(options = {})
4
12
  bucket = S3UploadForm.configuration.bucket
5
13
  access_key_id = S3UploadForm.configuration.access_key_id
6
14
  secret_access_key = S3UploadForm.configuration.secret_access_key
7
15
 
8
16
  raise "Please configure S3UploadForm before use" if bucket.blank? or access_key_id.blank? or secret_access_key.blank?
9
17
 
10
- protocol = options.delete(:protocol) || "http"
11
18
  key = options.delete(:key) || ""
12
19
  redirect = options.delete(:redirect) || "/"
13
20
  acl = options.delete(:acl) || "public-read"
14
21
  expiration_date = (options.delete(:expiration_date) || 10.hours).from_now.strftime("%Y-%m-%dT%H:%M:%S.000Z")
15
22
  filesize = options.delete(:filesize) || (1..1.megabyte)
16
23
  filesize_range = filesize.kind_of?(Fixnum) ? 1..filesize : filesize
17
- submit = options.delete(:submit) || submit_tag(I18n.t("button.upload", :default => "Upload"))
18
24
 
19
25
  policy_document = <<-eos
20
26
  {
@@ -33,11 +39,7 @@ module S3UploadForm
33
39
  policy = Base64.encode64(policy_document).gsub("\n","")
34
40
  signature = Base64.encode64(OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new("sha1"), secret_access_key, policy)).gsub("\n","")
35
41
 
36
- options[:action] ||= "#{protocol}://#{bucket}.s3.amazonaws.com/"
37
- options[:method] ||= "post"
38
- options[:enctype] ||= "multipart/form-data"
39
-
40
- content_tag :form, options do
42
+ content_tag :div, :style => "margin: 0pt; padding: 0pt; display: inline;" do
41
43
  content = ""
42
44
  content << hidden_field_tag("key", "#{key}/${filename}")
43
45
  content << hidden_field_tag("AWSAccessKeyId", access_key_id)
@@ -45,8 +47,6 @@ module S3UploadForm
45
47
  content << hidden_field_tag("success_action_redirect", redirect)
46
48
  content << hidden_field_tag("policy", policy)
47
49
  content << hidden_field_tag("signature", signature)
48
- content << file_field_tag("file")
49
- content << submit
50
50
  end
51
51
  end
52
52
  end
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{s3_upload_form}
5
- s.version = "0.2.2"
5
+ s.version = "0.3.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Jakub Kuźma"]
9
- s.date = %q{2009-06-17}
9
+ s.date = %q{2009-08-03}
10
10
  s.email = %q{qoobaa@gmail.com}
11
11
  s.extra_rdoc_files = [
12
12
  "LICENSE",
@@ -30,7 +30,7 @@ Gem::Specification.new do |s|
30
30
  s.homepage = %q{http://github.com/qoobaa/s3_upload_form}
31
31
  s.rdoc_options = ["--charset=UTF-8"]
32
32
  s.require_paths = ["lib"]
33
- s.rubygems_version = %q{1.3.4}
33
+ s.rubygems_version = %q{1.3.5}
34
34
  s.summary = %q{S3 file upload form}
35
35
  s.test_files = [
36
36
  "test/test_helper.rb"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qoobaa-s3_upload_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Jakub Ku\xC5\xBAma"
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-17 00:00:00 -07:00
12
+ date: 2009-08-03 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -38,6 +38,7 @@ files:
38
38
  - test/test_helper.rb
39
39
  has_rdoc: false
40
40
  homepage: http://github.com/qoobaa/s3_upload_form
41
+ licenses:
41
42
  post_install_message:
42
43
  rdoc_options:
43
44
  - --charset=UTF-8
@@ -58,7 +59,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
59
  requirements: []
59
60
 
60
61
  rubyforge_project:
61
- rubygems_version: 1.2.0
62
+ rubygems_version: 1.3.5
62
63
  signing_key:
63
64
  specification_version: 3
64
65
  summary: S3 file upload form