paperclip-aws 1.3.5 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -12,6 +12,7 @@
12
12
  * supports different permissions for each Paperclip style;
13
13
  * can generate urls for `read`, `write` и `delete` operations;
14
14
  * correctly sets content-type of uploaded files;
15
+ * ability to set content-disposition of uploaded files;
15
16
  * **supports amazon server side encryption** (thanks to [pvertenten](https://github.com/pvertenten));
16
17
  * highly compatible with included in Paperclip S3 storage module
17
18
 
@@ -52,9 +53,17 @@ After this add 'paperclip-aws' to your `Gemfile` or `environment.rb`
52
53
  :s3_options => {
53
54
  :sse => 'AES256',
54
55
  :storage_class => :reduced_redundancy
56
+ :content_disposition => 'attachment'
55
57
  },
56
58
 
57
59
  :path => "company_documents/:id/:style/:data_file_name"
60
+
61
+ # You also can modify @s3_options hash directly.
62
+ before_save do
63
+ self.data.s3_options[:content_disposition] = "attachment; filename=#{self.data_file_name}"
64
+ self.data.s3_options[:sse] = true if self.confidential_information?
65
+ self.data.s3_options[:storage_class] = true if self.unimportant_information?
66
+ end
58
67
  end
59
68
 
60
69
  ## Possible options ##
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.5
1
+ 1.4.0
data/lib/paperclip-aws.rb CHANGED
@@ -15,7 +15,10 @@ module Paperclip
15
15
  raise e
16
16
  end unless defined?(AWS)
17
17
 
18
- base.instance_eval do
18
+ attr_accessor :s3_options
19
+ base.instance_eval do
20
+
21
+
19
22
  @s3_credentials = parse_credentials(@options.s3_credentials)
20
23
  @s3_permissions = set_permissions(@options.s3_permissions)
21
24
 
@@ -33,9 +36,17 @@ module Paperclip
33
36
 
34
37
  @s3_options = @options.s3_options || {}
35
38
  # setup Amazon Server Side encryption
36
- @s3_sse = @s3_options[:sse] || false
37
- # choose what storage class we use, 'standard' or 'reduced_redundancy'
38
- @s3_storage_class = @s3_options[:storage_class] || :standard
39
+ @s3_options.reverse_merge!({
40
+ :sse => false,
41
+ :storage_class => :standard,
42
+ :content_disposition => nil
43
+ })
44
+
45
+ # @s3_sse = @s3_options[:sse] || false
46
+ # # choose what storage class we use, 'standard' or 'reduced_redundancy'
47
+ # @s3_storage_class = @s3_options[:storage_class] || :standard
48
+ #
49
+ # @s3_content_disposition = @s3_options[:content_disposition] || ''
39
50
 
40
51
  @s3_endpoint = @s3_credentials[:endpoint] || 's3.amazonaws.com'
41
52
 
@@ -138,11 +149,12 @@ module Paperclip
138
149
  log("saving #{path(style)}")
139
150
 
140
151
  @s3.buckets[@s3_bucket].objects[path(style)].write(
141
- file,
152
+ :file => file.path,
142
153
  :acl => @s3_permissions[:style.to_sym] || @s3_permissions[:default],
143
- :storage_class => @s3_storage_class.to_sym,
154
+ :storage_class => @s3_options[:storage_class],
144
155
  :content_type => file.content_type,
145
- :server_side_encryption => @s3_sse
156
+ :content_disposition => @s3_options[:content_disposition],
157
+ :server_side_encryption => @s3_options[:sse]
146
158
  )
147
159
  rescue AWS::S3::Errors::NoSuchBucket => e
148
160
  create_bucket
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "paperclip-aws"
8
- s.version = "1.3.5"
8
+ s.version = "1.4.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 = "2011-11-29"
12
+ s.date = "2011-11-30"
13
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
14
  s.email = "igor.alexandrov@gmail.com"
15
15
  s.extra_rdoc_files = [
data/test/debug.log CHANGED
@@ -2000,3 +2000,55 @@ D, [2011-11-14T00:55:21.090579 #53187] DEBUG -- :  (0.1ms) D
2000
2000
  D, [2011-11-14T00:55:21.092194 #53187] DEBUG -- :  (0.3ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2001
2001
  D, [2011-11-14T00:55:21.116832 #53187] DEBUG -- :  (0.2ms) DROP TABLE "dummies"
2002
2002
  D, [2011-11-14T00:55:21.117867 #53187] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2003
+ D, [2011-11-30T15:57:04.811133 #9144] DEBUG -- :  (0.5ms) select sqlite_version(*)
2004
+ D, [2011-11-30T15:57:04.838768 #9144] DEBUG -- :  (10.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2005
+ I, [2011-11-30T15:57:05.913050 #9144] INFO -- : Command :: identify -format %wx%h '/var/folders/h0/qs28mjnd4yz2g_2s_1lfr94c0000gn/T/stream20111130-9144-kx32ax.png[0]'
2006
+ I, [2011-11-30T15:57:05.960309 #9144] INFO -- : Command :: convert '/var/folders/h0/qs28mjnd4yz2g_2s_1lfr94c0000gn/T/stream20111130-9144-kx32ax.png[0]' -resize "x500" -crop "500x500+1393+0" +repage '/var/folders/h0/qs28mjnd4yz2g_2s_1lfr94c0000gn/T/stream20111130-9144-kx32ax20111130-9144-1jkx9ja.jpg'
2007
+ D, [2011-11-30T15:57:06.251656 #9144] DEBUG -- :  (0.4ms) DROP TABLE "dummies"
2008
+ D, [2011-11-30T15:57:06.253313 #9144] DEBUG -- :  (0.4ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2009
+ I, [2011-11-30T15:57:06.309254 #9144] INFO -- : Command :: identify -format %wx%h '/var/folders/h0/qs28mjnd4yz2g_2s_1lfr94c0000gn/T/stream20111130-9144-50yu82.png[0]'
2010
+ I, [2011-11-30T15:57:06.336693 #9144] INFO -- : Command :: convert '/var/folders/h0/qs28mjnd4yz2g_2s_1lfr94c0000gn/T/stream20111130-9144-50yu82.png[0]' -resize "x500" -crop "500x500+1393+0" +repage '/var/folders/h0/qs28mjnd4yz2g_2s_1lfr94c0000gn/T/stream20111130-9144-50yu8220111130-9144-1hzigdn.jpg'
2011
+ D, [2011-11-30T15:57:06.555197 #9144] DEBUG -- :  (1.0ms) DROP TABLE "dummies"
2012
+ D, [2011-11-30T15:57:06.556130 #9144] DEBUG -- :  (0.3ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2013
+ I, [2011-11-30T15:57:06.593267 #9144] INFO -- : Command :: identify -format %wx%h '/var/folders/h0/qs28mjnd4yz2g_2s_1lfr94c0000gn/T/stream20111130-9144-1enekak.png[0]'
2014
+ I, [2011-11-30T15:57:06.618549 #9144] INFO -- : Command :: convert '/var/folders/h0/qs28mjnd4yz2g_2s_1lfr94c0000gn/T/stream20111130-9144-1enekak.png[0]' -resize "x500" -crop "500x500+1393+0" +repage '/var/folders/h0/qs28mjnd4yz2g_2s_1lfr94c0000gn/T/stream20111130-9144-1enekak20111130-9144-soee2v.jpg'
2015
+ D, [2011-11-30T15:57:06.855306 #9144] DEBUG -- :  (0.2ms) DROP TABLE "dummies"
2016
+ D, [2011-11-30T15:57:06.856071 #9144] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2017
+ I, [2011-11-30T15:57:06.876352 #9144] INFO -- : Command :: identify -format %wx%h '/var/folders/h0/qs28mjnd4yz2g_2s_1lfr94c0000gn/T/stream20111130-9144-k756kd.png[0]'
2018
+ I, [2011-11-30T15:57:06.894074 #9144] INFO -- : Command :: convert '/var/folders/h0/qs28mjnd4yz2g_2s_1lfr94c0000gn/T/stream20111130-9144-k756kd.png[0]' -resize "x500" -crop "500x500+1393+0" +repage '/var/folders/h0/qs28mjnd4yz2g_2s_1lfr94c0000gn/T/stream20111130-9144-k756kd20111130-9144-f6hni5.jpg'
2019
+ D, [2011-11-30T15:57:07.140518 #9144] DEBUG -- :  (0.3ms) DROP TABLE "dummies"
2020
+ D, [2011-11-30T15:57:07.141724 #9144] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2021
+ D, [2011-11-30T15:57:07.193022 #9144] DEBUG -- :  (0.3ms) DROP TABLE "dummies"
2022
+ D, [2011-11-30T15:57:07.193802 #9144] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2023
+ D, [2011-11-30T15:57:07.211433 #9144] DEBUG -- :  (0.2ms) DROP TABLE "dummies"
2024
+ D, [2011-11-30T15:57:07.213791 #9144] DEBUG -- :  (0.5ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2025
+ D, [2011-11-30T15:57:07.249979 #9144] DEBUG -- :  (0.2ms) DROP TABLE "dummies"
2026
+ D, [2011-11-30T15:57:07.250656 #9144] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2027
+ D, [2011-11-30T15:57:07.261649 #9144] DEBUG -- :  (0.1ms) DROP TABLE "dummies"
2028
+ D, [2011-11-30T15:57:07.262740 #9144] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2029
+ D, [2011-11-30T15:57:07.282432 #9144] DEBUG -- :  (0.3ms) DROP TABLE "dummies"
2030
+ D, [2011-11-30T15:57:07.285659 #9144] DEBUG -- :  (0.3ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2031
+ D, [2011-11-30T15:57:07.400516 #9144] DEBUG -- :  (0.1ms) DROP TABLE "dummies"
2032
+ D, [2011-11-30T15:57:07.401169 #9144] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2033
+ D, [2011-11-30T15:57:07.422467 #9144] DEBUG -- :  (0.1ms) DROP TABLE "dummies"
2034
+ D, [2011-11-30T15:57:07.422989 #9144] DEBUG -- :  (0.1ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2035
+ D, [2011-11-30T15:57:07.564313 #9144] DEBUG -- :  (0.2ms) DROP TABLE "dummies"
2036
+ D, [2011-11-30T15:57:07.565048 #9144] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2037
+ D, [2011-11-30T15:57:07.681554 #9144] DEBUG -- :  (0.7ms) DROP TABLE "dummies"
2038
+ D, [2011-11-30T15:57:07.682747 #9144] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2039
+ D, [2011-11-30T15:57:07.728276 #9144] DEBUG -- :  (0.1ms) DROP TABLE "dummies"
2040
+ D, [2011-11-30T15:57:07.729199 #9144] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2041
+ D, [2011-11-30T15:57:07.754217 #9144] DEBUG -- :  (0.1ms) DROP TABLE "dummies"
2042
+ D, [2011-11-30T15:57:07.754790 #9144] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2043
+ D, [2011-11-30T15:57:07.775813 #9144] DEBUG -- :  (0.1ms) DROP TABLE "dummies"
2044
+ D, [2011-11-30T15:57:07.776689 #9144] DEBUG -- :  (0.3ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2045
+ D, [2011-11-30T15:57:07.865466 #9144] DEBUG -- :  (0.2ms) DROP TABLE "dummies"
2046
+ D, [2011-11-30T15:57:07.866903 #9144] DEBUG -- :  (0.4ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2047
+ D, [2011-11-30T15:57:07.905806 #9144] DEBUG -- :  (0.1ms) DROP TABLE "dummies"
2048
+ D, [2011-11-30T15:57:07.906556 #9144] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2049
+ D, [2011-11-30T15:57:08.016449 #9144] DEBUG -- :  (0.2ms) DROP TABLE "dummies"
2050
+ D, [2011-11-30T15:57:08.017967 #9144] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2051
+ D, [2011-11-30T15:57:08.066210 #9144] DEBUG -- :  (0.2ms) DROP TABLE "dummies"
2052
+ D, [2011-11-30T15:57:08.066988 #9144] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
2053
+ D, [2011-11-30T15:57:08.107915 #9144] DEBUG -- :  (0.1ms) DROP TABLE "dummies"
2054
+ D, [2011-11-30T15:57:08.108540 #9144] DEBUG -- :  (0.2ms) CREATE TABLE "dummies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "other" varchar(255), "avatar_file_name" varchar(255), "avatar_content_type" varchar(255), "avatar_file_size" integer, "avatar_updated_at" datetime, "avatar_fingerprint" varchar(255))
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.3.5
4
+ version: 1.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-29 00:00:00.000000000 Z
12
+ date: 2011-11-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: paperclip
16
- requirement: &70307361234160 !ruby/object:Gem::Requirement
16
+ requirement: &70336624699780 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.4.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70307361234160
24
+ version_requirements: *70336624699780
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: aws-sdk
27
- requirement: &70307360990860 !ruby/object:Gem::Requirement
27
+ requirement: &70336624698400 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.2.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70307360990860
35
+ version_requirements: *70336624698400
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &70307360988420 !ruby/object:Gem::Requirement
38
+ requirement: &70336624628000 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70307360988420
46
+ version_requirements: *70336624628000
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &70307361261020 !ruby/object:Gem::Requirement
49
+ requirement: &70336624622700 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 1.6.4
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70307361261020
57
+ version_requirements: *70336624622700
58
58
  description: ! '''paperclip-aws'' is a full featured storage module that supports
59
59
  all S3 locations (US, European and Tokio) without any additional hacking.'
60
60
  email: igor.alexandrov@gmail.com
@@ -94,7 +94,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
94
94
  version: '0'
95
95
  segments:
96
96
  - 0
97
- hash: -620318264857174187
97
+ hash: 2734313854826493874
98
98
  required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  none: false
100
100
  requirements: