paperclip-aws 1.1.3 → 1.2.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/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "http://rubygems.org"
2
- gem 'paperclip', '>=2.3.0'
3
- gem 'aws-sdk', '>=1.1.0'
2
+ gem 'paperclip', '>=2.4.0'
3
+ gem 'aws-sdk', '>=1.2.0'
4
4
 
5
5
  # Add dependencies to develop your gem here.
6
6
  # Include everything needed to run rake, tests, features, etc.
data/Gemfile.lock CHANGED
@@ -1,37 +1,40 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activemodel (3.0.10)
5
- activesupport (= 3.0.10)
6
- builder (~> 2.1.2)
7
- i18n (~> 0.5.0)
8
- activerecord (3.0.10)
9
- activemodel (= 3.0.10)
10
- activesupport (= 3.0.10)
11
- arel (~> 2.0.10)
12
- tzinfo (~> 0.3.23)
13
- activesupport (3.0.10)
14
- arel (2.0.10)
15
- aws-sdk (1.1.0)
4
+ activemodel (3.1.1)
5
+ activesupport (= 3.1.1)
6
+ builder (~> 3.0.0)
7
+ i18n (~> 0.6)
8
+ activerecord (3.1.1)
9
+ activemodel (= 3.1.1)
10
+ activesupport (= 3.1.1)
11
+ arel (~> 2.2.1)
12
+ tzinfo (~> 0.3.29)
13
+ activesupport (3.1.1)
14
+ multi_json (~> 1.0)
15
+ arel (2.2.1)
16
+ aws-sdk (1.2.2)
16
17
  httparty (~> 0.7)
17
18
  json (~> 1.4)
18
19
  nokogiri (>= 1.4.4)
19
20
  uuidtools (~> 2.1)
20
- builder (2.1.2)
21
+ builder (3.0.0)
21
22
  cocaine (0.2.0)
22
- crack (0.1.8)
23
23
  git (1.2.5)
24
- httparty (0.7.8)
25
- crack (= 0.1.8)
26
- i18n (0.5.0)
24
+ httparty (0.8.1)
25
+ multi_json
26
+ multi_xml
27
+ i18n (0.6.0)
27
28
  jeweler (1.6.4)
28
29
  bundler (~> 1.0)
29
30
  git (>= 1.2.5)
30
31
  rake
31
- json (1.5.3)
32
- mime-types (1.16)
32
+ json (1.6.1)
33
+ mime-types (1.17.2)
34
+ multi_json (1.0.3)
35
+ multi_xml (0.4.1)
33
36
  nokogiri (1.5.0)
34
- paperclip (2.3.16)
37
+ paperclip (2.4.5)
35
38
  activerecord (>= 2.3.0)
36
39
  activesupport (>= 2.3.2)
37
40
  cocaine (>= 0.0.2)
@@ -39,16 +42,16 @@ GEM
39
42
  rake (0.9.2)
40
43
  rcov (0.9.10)
41
44
  shoulda (2.11.3)
42
- tzinfo (0.3.29)
45
+ tzinfo (0.3.31)
43
46
  uuidtools (2.1.2)
44
47
 
45
48
  PLATFORMS
46
49
  ruby
47
50
 
48
51
  DEPENDENCIES
49
- aws-sdk (>= 1.1.0)
52
+ aws-sdk (>= 1.2.0)
50
53
  bundler (~> 1.0.0)
51
54
  jeweler (~> 1.6.4)
52
- paperclip (>= 2.3.0)
55
+ paperclip (>= 2.4.0)
53
56
  rcov
54
57
  shoulda
data/README.md CHANGED
@@ -9,12 +9,13 @@
9
9
  * supports expiring urls;
10
10
  * can generate urls for `read`, `write` и `delete` operations;
11
11
  * correctly sets content-type of uploaded files;
12
+ * **supports amazon server side encryption** (thanks to [pvertenten](https://github.com/pvertenten));
12
13
 
13
14
 
14
15
  ## Requirements ##
15
16
 
16
17
  * [paperclip][0] ~> 2.3
17
- * [aws-sdk][1] >= 1.0.3
18
+ * [aws-sdk][1] >= 1.2.2
18
19
 
19
20
  ## Installation ##
20
21
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.3
1
+ 1.2.0
data/lib/paperclip-aws.rb CHANGED
@@ -22,7 +22,8 @@ module Paperclip
22
22
 
23
23
  # setup permissions
24
24
  @s3_acl = @options[:s3_acl] || :public_read
25
-
25
+ @s3_sse = @options[:s3_sse]
26
+
26
27
  # choose what storage class we use, 'standard' or 'reduced_redundancy'
27
28
  @s3_storage_class = @options[:s3_storage_class] || :standard
28
29
 
@@ -74,7 +75,14 @@ module Paperclip
74
75
  end
75
76
 
76
77
  def exists?(style = default_style)
77
- @s3.buckets[@s3_bucket].objects[path(style)].exists?
78
+ if path(style).nil? || path(style).to_s.strip == ""
79
+ return false
80
+ end
81
+ begin
82
+ return @s3.buckets[@s3_bucket].objects[path(style)].exists?
83
+ rescue AWS::S3::Errors::NoSuchKey
84
+ return false
85
+ end
78
86
  end
79
87
 
80
88
  def choose_protocol(options={})
@@ -107,17 +115,18 @@ module Paperclip
107
115
  @queued_for_write.each do |style, file|
108
116
  begin
109
117
  log("saving #{path(style)}")
110
-
118
+
111
119
  @s3.buckets[@s3_bucket].objects[path(style)].write(
112
120
  file,
113
121
  :acl => @s3_acl,
114
122
  :storage_class => @s3_storage_class,
115
- :content_type => file.content_type
123
+ :content_type => file.content_type,
124
+ :server_side_encryption => @s3_sse
116
125
  )
117
126
  rescue AWS::S3::Errors::NoSuchBucket => e
118
127
  create_bucket
119
128
  retry
120
- rescue AWS::S3::Errors::Base => e
129
+ rescue AWS::Errors::Base => e
121
130
  raise
122
131
  end
123
132
  end
@@ -129,7 +138,7 @@ module Paperclip
129
138
  begin
130
139
  log("deleting #{path}")
131
140
  @s3.buckets[@s3_bucket].objects[path].delete
132
- rescue AWS::S3::Base => e
141
+ rescue AWS::Errors::Base => e
133
142
  raise
134
143
  end
135
144
  end
@@ -152,4 +161,4 @@ module Paperclip
152
161
 
153
162
  end
154
163
  end
155
- end
164
+ end
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{paperclip-aws}
8
- s.version = "1.1.3"
7
+ s.name = "paperclip-aws"
8
+ s.version = "1.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Igor Alexandrov"]
12
- s.date = %q{2011-08-18}
13
- s.description = %q{'paperclip-aws' is a full featured storage module that supports all S3 locations (US, European and Tokio) without any additional hacking.}
14
- s.email = %q{igor.alexandrov@gmail.com}
12
+ s.date = "2011-11-10"
13
+ s.description = "'paperclip-aws' is a full featured storage module that supports all S3 locations (US, European and Tokio) without any additional hacking."
14
+ s.email = "igor.alexandrov@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
17
  "README.md"
@@ -29,33 +29,33 @@ Gem::Specification.new do |s|
29
29
  "test/helper.rb",
30
30
  "test/test_papepclip-aws.rb"
31
31
  ]
32
- s.homepage = %q{http://github.com/igor-alexandrov/paperclip-aws}
32
+ s.homepage = "http://github.com/igor-alexandrov/paperclip-aws"
33
33
  s.licenses = ["MIT"]
34
34
  s.require_paths = ["lib"]
35
- s.rubygems_version = %q{1.7.2}
36
- s.summary = %q{Storage module to official 'aws-sdk' gem for Amazon S3}
35
+ s.rubygems_version = "1.8.10"
36
+ s.summary = "Storage module to official 'aws-sdk' gem for Amazon S3"
37
37
 
38
38
  if s.respond_to? :specification_version then
39
39
  s.specification_version = 3
40
40
 
41
41
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
42
- s.add_runtime_dependency(%q<paperclip>, [">= 2.3.0"])
43
- s.add_runtime_dependency(%q<aws-sdk>, [">= 1.1.0"])
42
+ s.add_runtime_dependency(%q<paperclip>, [">= 2.4.0"])
43
+ s.add_runtime_dependency(%q<aws-sdk>, [">= 1.2.0"])
44
44
  s.add_development_dependency(%q<shoulda>, [">= 0"])
45
45
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
46
46
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
47
47
  s.add_development_dependency(%q<rcov>, [">= 0"])
48
48
  else
49
- s.add_dependency(%q<paperclip>, [">= 2.3.0"])
50
- s.add_dependency(%q<aws-sdk>, [">= 1.1.0"])
49
+ s.add_dependency(%q<paperclip>, [">= 2.4.0"])
50
+ s.add_dependency(%q<aws-sdk>, [">= 1.2.0"])
51
51
  s.add_dependency(%q<shoulda>, [">= 0"])
52
52
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
53
53
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
54
54
  s.add_dependency(%q<rcov>, [">= 0"])
55
55
  end
56
56
  else
57
- s.add_dependency(%q<paperclip>, [">= 2.3.0"])
58
- s.add_dependency(%q<aws-sdk>, [">= 1.1.0"])
57
+ s.add_dependency(%q<paperclip>, [">= 2.4.0"])
58
+ s.add_dependency(%q<aws-sdk>, [">= 1.2.0"])
59
59
  s.add_dependency(%q<shoulda>, [">= 0"])
60
60
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
61
61
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperclip-aws
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,33 +9,33 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-18 00:00:00.000000000Z
12
+ date: 2011-11-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: paperclip
16
- requirement: &70278361149580 !ruby/object:Gem::Requirement
16
+ requirement: &70106231922500 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 2.3.0
21
+ version: 2.4.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70278361149580
24
+ version_requirements: *70106231922500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: aws-sdk
27
- requirement: &70278361147340 !ruby/object:Gem::Requirement
27
+ requirement: &70106231921740 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
31
31
  - !ruby/object:Gem::Version
32
- version: 1.1.0
32
+ version: 1.2.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70278361147340
35
+ version_requirements: *70106231921740
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: shoulda
38
- requirement: &70278361145980 !ruby/object:Gem::Requirement
38
+ requirement: &70106231920980 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70278361145980
46
+ version_requirements: *70106231920980
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &70278359442060 !ruby/object:Gem::Requirement
49
+ requirement: &70106231920060 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.0.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70278359442060
57
+ version_requirements: *70106231920060
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &70278359440820 !ruby/object:Gem::Requirement
60
+ requirement: &70106231919420 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.6.4
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70278359440820
68
+ version_requirements: *70106231919420
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rcov
71
- requirement: &70278359438220 !ruby/object:Gem::Requirement
71
+ requirement: &70106231918660 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70278359438220
79
+ version_requirements: *70106231918660
80
80
  description: ! '''paperclip-aws'' is a full featured storage module that supports
81
81
  all S3 locations (US, European and Tokio) without any additional hacking.'
82
82
  email: igor.alexandrov@gmail.com
@@ -112,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
112
  version: '0'
113
113
  segments:
114
114
  - 0
115
- hash: -4585726686328687021
115
+ hash: -2842313220782093733
116
116
  required_rubygems_version: !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
@@ -121,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
121
  version: '0'
122
122
  requirements: []
123
123
  rubyforge_project:
124
- rubygems_version: 1.7.2
124
+ rubygems_version: 1.8.10
125
125
  signing_key:
126
126
  specification_version: 3
127
127
  summary: Storage module to official 'aws-sdk' gem for Amazon S3