httpimagestore 0.4.0 → 0.5.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.rdoc +4 -0
- data/VERSION +1 -1
- data/bin/httpimagestore +3 -2
- data/features/cache-control.feature +26 -0
- data/httpimagestore.gemspec +1 -1
- data/lib/httpimagestore/s3_service.rb +2 -2
- metadata +34 -34
data/README.rdoc
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Description goes here.
|
|
4
4
|
|
|
5
|
+
== Putting image with cURL
|
|
6
|
+
|
|
7
|
+
`curl -X PUT --data-binary @<image_file> -H "Content-Type: image/auto" <server>:<port>/thumbnail/<class_name>/<store_uri>`
|
|
8
|
+
|
|
5
9
|
== Contributing to httpimagestore
|
|
6
10
|
|
|
7
11
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.5.0
|
data/bin/httpimagestore
CHANGED
|
@@ -37,9 +37,10 @@ cli_settings = CLI.new do
|
|
|
37
37
|
default: 0.0,
|
|
38
38
|
cast: Float,
|
|
39
39
|
description: "Time to sleep between retries"
|
|
40
|
-
|
|
40
|
+
options :cache_control,
|
|
41
41
|
default: "public, max-age=#{(86400 * 365.25).to_i}",
|
|
42
|
-
description: "Stored object Cache-Control header value"
|
|
42
|
+
description: "Stored object Cache-Control header value - can be used multiple times to specify flag by flag"
|
|
43
|
+
|
|
43
44
|
argument :config,
|
|
44
45
|
cast: Pathname,
|
|
45
46
|
description: "Configuration file path"
|
|
@@ -54,6 +54,32 @@ Feature: Stored objects should have proper Cache-Control header set
|
|
|
54
54
|
And http://issthumbtest.s3.amazonaws.com/test/image/4006450256177f4a/test.jpg Cache-Control header will be private, max-age=300, s-maxage=300
|
|
55
55
|
And http://issthumbtest.s3.amazonaws.com/test/image/4006450256177f4a/test-small.jpg Cache-Control header will be private, max-age=300, s-maxage=300
|
|
56
56
|
|
|
57
|
+
@cache-control
|
|
58
|
+
Scenario: Image files get Cache-Control header defined with argument
|
|
59
|
+
Given httpimagestore argument --cache-control 'private'
|
|
60
|
+
Given httpimagestore argument --cache-control 'max-age=300'
|
|
61
|
+
Given httpimagestore argument --cache-control 's-maxage=300'
|
|
62
|
+
Given httpimagestore server is running at http://localhost:3000/ with the following configuration
|
|
63
|
+
"""
|
|
64
|
+
s3_key 'AKIAJMUYVYOSACNXLPTQ', 'MAeGhvW+clN7kzK3NboASf3/kZ6a81PRtvwMZj4Y'
|
|
65
|
+
s3_bucket 'issthumbtest'
|
|
66
|
+
|
|
67
|
+
thumbnail_class 'small', 'crop', 128, 128
|
|
68
|
+
"""
|
|
69
|
+
Given there is no test/image/4006450256177f4a/test.jpg file in S3 bucket
|
|
70
|
+
And there is no test/image/4006450256177f4a/test-small.jpg file in S3 bucket
|
|
71
|
+
Given test.jpg file content as request body
|
|
72
|
+
When I do PUT request http://localhost:3000/thumbnail/small/test/image/test
|
|
73
|
+
Then response status will be 200
|
|
74
|
+
And response content type will be text/uri-list
|
|
75
|
+
And response body will be CRLF ended lines
|
|
76
|
+
"""
|
|
77
|
+
http://issthumbtest.s3.amazonaws.com/test/image/4006450256177f4a/test.jpg
|
|
78
|
+
http://issthumbtest.s3.amazonaws.com/test/image/4006450256177f4a/test-small.jpg
|
|
79
|
+
"""
|
|
80
|
+
And http://issthumbtest.s3.amazonaws.com/test/image/4006450256177f4a/test.jpg Cache-Control header will be private, max-age=300, s-maxage=300
|
|
81
|
+
And http://issthumbtest.s3.amazonaws.com/test/image/4006450256177f4a/test-small.jpg Cache-Control header will be private, max-age=300, s-maxage=300
|
|
82
|
+
|
|
57
83
|
@cache-control
|
|
58
84
|
Scenario: Image files get Cache-Control header undefined when set to ''
|
|
59
85
|
Given httpimagestore argument --cache-control ''
|
data/httpimagestore.gemspec
CHANGED
|
@@ -16,8 +16,8 @@ class S3Service
|
|
|
16
16
|
@logger.info "Putting image in bucket '#{@bucket.name}': #{image_path}"
|
|
17
17
|
|
|
18
18
|
file = @bucket.objects.build(image_path)
|
|
19
|
-
|
|
20
|
-
file.cache_control =
|
|
19
|
+
cache_control = @options[:cache_control].join(', ') if @options.include?(:cache_control) and not @options[:cache_control].empty?
|
|
20
|
+
file.cache_control = cache_control unless cache_control.empty?
|
|
21
21
|
|
|
22
22
|
file.content_type = content_type
|
|
23
23
|
file.content = data
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: httpimagestore
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -13,7 +13,7 @@ date: 2012-11-14 00:00:00.000000000 Z
|
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: sinatra
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &70152800899640 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: 1.2.6
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *70152800899640
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: mongrel
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &70152801295320 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: 1.2.0.pre2
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *70152801295320
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: s3
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &70152801294280 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ~>
|
|
@@ -43,10 +43,10 @@ dependencies:
|
|
|
43
43
|
version: '0.3'
|
|
44
44
|
type: :runtime
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *70152801294280
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: httpthumbnailer-client
|
|
49
|
-
requirement: &
|
|
49
|
+
requirement: &70152801292780 !ruby/object:Gem::Requirement
|
|
50
50
|
none: false
|
|
51
51
|
requirements:
|
|
52
52
|
- - ~>
|
|
@@ -54,10 +54,10 @@ dependencies:
|
|
|
54
54
|
version: 0.1.0
|
|
55
55
|
type: :runtime
|
|
56
56
|
prerelease: false
|
|
57
|
-
version_requirements: *
|
|
57
|
+
version_requirements: *70152801292780
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
59
|
name: ruby-ip
|
|
60
|
-
requirement: &
|
|
60
|
+
requirement: &70152801291520 !ruby/object:Gem::Requirement
|
|
61
61
|
none: false
|
|
62
62
|
requirements:
|
|
63
63
|
- - ~>
|
|
@@ -65,10 +65,10 @@ dependencies:
|
|
|
65
65
|
version: '0.9'
|
|
66
66
|
type: :runtime
|
|
67
67
|
prerelease: false
|
|
68
|
-
version_requirements: *
|
|
68
|
+
version_requirements: *70152801291520
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: cli
|
|
71
|
-
requirement: &
|
|
71
|
+
requirement: &70152801290400 !ruby/object:Gem::Requirement
|
|
72
72
|
none: false
|
|
73
73
|
requirements:
|
|
74
74
|
- - ~>
|
|
@@ -76,10 +76,10 @@ dependencies:
|
|
|
76
76
|
version: 1.1.0
|
|
77
77
|
type: :runtime
|
|
78
78
|
prerelease: false
|
|
79
|
-
version_requirements: *
|
|
79
|
+
version_requirements: *70152801290400
|
|
80
80
|
- !ruby/object:Gem::Dependency
|
|
81
81
|
name: mime-types
|
|
82
|
-
requirement: &
|
|
82
|
+
requirement: &70152801289520 !ruby/object:Gem::Requirement
|
|
83
83
|
none: false
|
|
84
84
|
requirements:
|
|
85
85
|
- - ~>
|
|
@@ -87,10 +87,10 @@ dependencies:
|
|
|
87
87
|
version: 1.17.2
|
|
88
88
|
type: :runtime
|
|
89
89
|
prerelease: false
|
|
90
|
-
version_requirements: *
|
|
90
|
+
version_requirements: *70152801289520
|
|
91
91
|
- !ruby/object:Gem::Dependency
|
|
92
92
|
name: retry-this
|
|
93
|
-
requirement: &
|
|
93
|
+
requirement: &70152801288860 !ruby/object:Gem::Requirement
|
|
94
94
|
none: false
|
|
95
95
|
requirements:
|
|
96
96
|
- - ~>
|
|
@@ -98,10 +98,10 @@ dependencies:
|
|
|
98
98
|
version: '1.1'
|
|
99
99
|
type: :runtime
|
|
100
100
|
prerelease: false
|
|
101
|
-
version_requirements: *
|
|
101
|
+
version_requirements: *70152801288860
|
|
102
102
|
- !ruby/object:Gem::Dependency
|
|
103
103
|
name: rspec
|
|
104
|
-
requirement: &
|
|
104
|
+
requirement: &70152801288200 !ruby/object:Gem::Requirement
|
|
105
105
|
none: false
|
|
106
106
|
requirements:
|
|
107
107
|
- - ~>
|
|
@@ -109,10 +109,10 @@ dependencies:
|
|
|
109
109
|
version: 2.8.0
|
|
110
110
|
type: :development
|
|
111
111
|
prerelease: false
|
|
112
|
-
version_requirements: *
|
|
112
|
+
version_requirements: *70152801288200
|
|
113
113
|
- !ruby/object:Gem::Dependency
|
|
114
114
|
name: cucumber
|
|
115
|
-
requirement: &
|
|
115
|
+
requirement: &70152801287580 !ruby/object:Gem::Requirement
|
|
116
116
|
none: false
|
|
117
117
|
requirements:
|
|
118
118
|
- - ! '>='
|
|
@@ -120,10 +120,10 @@ dependencies:
|
|
|
120
120
|
version: '0'
|
|
121
121
|
type: :development
|
|
122
122
|
prerelease: false
|
|
123
|
-
version_requirements: *
|
|
123
|
+
version_requirements: *70152801287580
|
|
124
124
|
- !ruby/object:Gem::Dependency
|
|
125
125
|
name: jeweler
|
|
126
|
-
requirement: &
|
|
126
|
+
requirement: &70152801302780 !ruby/object:Gem::Requirement
|
|
127
127
|
none: false
|
|
128
128
|
requirements:
|
|
129
129
|
- - ~>
|
|
@@ -131,10 +131,10 @@ dependencies:
|
|
|
131
131
|
version: 1.6.4
|
|
132
132
|
type: :development
|
|
133
133
|
prerelease: false
|
|
134
|
-
version_requirements: *
|
|
134
|
+
version_requirements: *70152801302780
|
|
135
135
|
- !ruby/object:Gem::Dependency
|
|
136
136
|
name: simplecov
|
|
137
|
-
requirement: &
|
|
137
|
+
requirement: &70152801301640 !ruby/object:Gem::Requirement
|
|
138
138
|
none: false
|
|
139
139
|
requirements:
|
|
140
140
|
- - ! '>='
|
|
@@ -142,10 +142,10 @@ dependencies:
|
|
|
142
142
|
version: '0'
|
|
143
143
|
type: :development
|
|
144
144
|
prerelease: false
|
|
145
|
-
version_requirements: *
|
|
145
|
+
version_requirements: *70152801301640
|
|
146
146
|
- !ruby/object:Gem::Dependency
|
|
147
147
|
name: rdoc
|
|
148
|
-
requirement: &
|
|
148
|
+
requirement: &70152801300940 !ruby/object:Gem::Requirement
|
|
149
149
|
none: false
|
|
150
150
|
requirements:
|
|
151
151
|
- - ~>
|
|
@@ -153,10 +153,10 @@ dependencies:
|
|
|
153
153
|
version: '3.9'
|
|
154
154
|
type: :development
|
|
155
155
|
prerelease: false
|
|
156
|
-
version_requirements: *
|
|
156
|
+
version_requirements: *70152801300940
|
|
157
157
|
- !ruby/object:Gem::Dependency
|
|
158
158
|
name: daemon
|
|
159
|
-
requirement: &
|
|
159
|
+
requirement: &70152801300380 !ruby/object:Gem::Requirement
|
|
160
160
|
none: false
|
|
161
161
|
requirements:
|
|
162
162
|
- - ~>
|
|
@@ -164,10 +164,10 @@ dependencies:
|
|
|
164
164
|
version: '1'
|
|
165
165
|
type: :development
|
|
166
166
|
prerelease: false
|
|
167
|
-
version_requirements: *
|
|
167
|
+
version_requirements: *70152801300380
|
|
168
168
|
- !ruby/object:Gem::Dependency
|
|
169
169
|
name: httpthumbnailer
|
|
170
|
-
requirement: &
|
|
170
|
+
requirement: &70152801299680 !ruby/object:Gem::Requirement
|
|
171
171
|
none: false
|
|
172
172
|
requirements:
|
|
173
173
|
- - ~>
|
|
@@ -175,10 +175,10 @@ dependencies:
|
|
|
175
175
|
version: '0.2'
|
|
176
176
|
type: :development
|
|
177
177
|
prerelease: false
|
|
178
|
-
version_requirements: *
|
|
178
|
+
version_requirements: *70152801299680
|
|
179
179
|
- !ruby/object:Gem::Dependency
|
|
180
180
|
name: prawn
|
|
181
|
-
requirement: &
|
|
181
|
+
requirement: &70152801299080 !ruby/object:Gem::Requirement
|
|
182
182
|
none: false
|
|
183
183
|
requirements:
|
|
184
184
|
- - =
|
|
@@ -186,7 +186,7 @@ dependencies:
|
|
|
186
186
|
version: 0.8.4
|
|
187
187
|
type: :development
|
|
188
188
|
prerelease: false
|
|
189
|
-
version_requirements: *
|
|
189
|
+
version_requirements: *70152801299080
|
|
190
190
|
description: Thumbnails images using httpthumbnailer and stored data on HTTP server
|
|
191
191
|
(S3)
|
|
192
192
|
email: jpastuszek@gmail.com
|
|
@@ -237,7 +237,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
237
237
|
version: '0'
|
|
238
238
|
segments:
|
|
239
239
|
- 0
|
|
240
|
-
hash: -
|
|
240
|
+
hash: -4091729981865495477
|
|
241
241
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
242
|
none: false
|
|
243
243
|
requirements:
|