httpimagestore 1.8.1 → 1.9.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.
- checksums.yaml +15 -0
- data/Gemfile +7 -7
- data/Gemfile.lock +20 -20
- data/README.md +165 -37
- data/Rakefile +7 -2
- data/VERSION +1 -1
- data/bin/httpimagestore +74 -41
- data/lib/httpimagestore/configuration/file.rb +20 -11
- data/lib/httpimagestore/configuration/handler.rb +96 -257
- data/lib/httpimagestore/configuration/handler/source_store_base.rb +37 -0
- data/lib/httpimagestore/configuration/handler/statement.rb +114 -0
- data/lib/httpimagestore/configuration/identify.rb +17 -9
- data/lib/httpimagestore/configuration/output.rb +33 -61
- data/lib/httpimagestore/configuration/path.rb +2 -2
- data/lib/httpimagestore/configuration/request_state.rb +131 -0
- data/lib/httpimagestore/configuration/s3.rb +41 -29
- data/lib/httpimagestore/configuration/thumbnailer.rb +189 -96
- data/lib/httpimagestore/configuration/validate_hmac.rb +170 -0
- data/lib/httpimagestore/error_reporter.rb +6 -1
- data/lib/httpimagestore/ruby_string_template.rb +10 -19
- metadata +40 -102
- data/.rspec +0 -1
- data/features/cache-control.feature +0 -41
- data/features/compatibility.feature +0 -165
- data/features/data-uri.feature +0 -55
- data/features/encoding.feature +0 -103
- data/features/error-reporting.feature +0 -281
- data/features/flexi.feature +0 -259
- data/features/health-check.feature +0 -29
- data/features/request-matching.feature +0 -211
- data/features/rewrite.feature +0 -122
- data/features/s3-store-and-thumbnail.feature +0 -82
- data/features/source-failover.feature +0 -71
- data/features/step_definitions/httpimagestore_steps.rb +0 -203
- data/features/storage.feature +0 -198
- data/features/support/env.rb +0 -116
- data/features/support/test-large.jpg +0 -0
- data/features/support/test.empty +0 -0
- data/features/support/test.jpg +0 -0
- data/features/support/test.png +0 -0
- data/features/support/test.txt +0 -1
- data/features/support/tiny.png +0 -0
- data/features/xid-forwarding.feature +0 -49
- data/httpimagestore.gemspec +0 -145
- data/load_test/load_test.1k.23a022f6e.m1.small-comp.csv +0 -3
- data/load_test/load_test.1k.ec9bde794.m1.small.csv +0 -4
- data/load_test/load_test.jmx +0 -317
- data/load_test/thumbnail_specs.csv +0 -11
- data/load_test/thumbnail_specs_v2.csv +0 -10
- data/spec/configuration_file_spec.rb +0 -333
- data/spec/configuration_handler_spec.rb +0 -255
- data/spec/configuration_identify_spec.rb +0 -67
- data/spec/configuration_output_spec.rb +0 -821
- data/spec/configuration_path_spec.rb +0 -138
- data/spec/configuration_s3_spec.rb +0 -911
- data/spec/configuration_source_failover_spec.rb +0 -101
- data/spec/configuration_spec.rb +0 -90
- data/spec/configuration_thumbnailer_spec.rb +0 -483
- data/spec/ruby_string_template_spec.rb +0 -61
- data/spec/spec_helper.rb +0 -89
- data/spec/support/compute.jpg +0 -0
- data/spec/support/cuba_response_env.rb +0 -40
- data/spec/support/full.cfg +0 -183
- data/spec/support/utf_string.txt +0 -1
data/features/storage.feature
DELETED
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
Feature: Storing images under different names
|
|
2
|
-
Storage supports UUID and SHA digest based auto generated storage as well as user provided via request or static configuration string.
|
|
3
|
-
|
|
4
|
-
Background:
|
|
5
|
-
Given httpthumbnailer server is running at http://localhost:3100/health_check
|
|
6
|
-
Given httpimagestore server is running at http://localhost:3000/health_check with the following configuration
|
|
7
|
-
"""
|
|
8
|
-
path "input_digest" "#{input_digest}"
|
|
9
|
-
path "input_sha256" "#{input_sha256}"
|
|
10
|
-
path "image_digest" "#{image_digest}"
|
|
11
|
-
path "image_sha256" "#{image_sha256}"
|
|
12
|
-
path "uuid" "#{uuid}"
|
|
13
|
-
path "image_meta" "#{image_width}x#{image_height}.#{image_mime_extension}"
|
|
14
|
-
path "input_image_meta" "#{input_image_width}x#{input_image_height}.#{input_image_mime_extension}"
|
|
15
|
-
|
|
16
|
-
post "images" "input_digest" {
|
|
17
|
-
thumbnail "input" "thumbnail" operation="crop" width="50" height="50"
|
|
18
|
-
store_file "thumbnail" root="/tmp" path="input_digest"
|
|
19
|
-
output_store_path "thumbnail"
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
post "images" "input_sha256" {
|
|
23
|
-
thumbnail "input" "thumbnail" operation="crop" width="50" height="50"
|
|
24
|
-
store_file "thumbnail" root="/tmp" path="input_sha256"
|
|
25
|
-
output_store_path "thumbnail"
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
post "images" "image_digest" {
|
|
29
|
-
thumbnail "input" "thumbnail" operation="crop" width="50" height="50"
|
|
30
|
-
store_file "thumbnail" root="/tmp" path="image_digest"
|
|
31
|
-
output_store_path "thumbnail"
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
post "images" "image_sha256" {
|
|
35
|
-
thumbnail "input" "thumbnail" operation="crop" width="50" height="50"
|
|
36
|
-
store_file "thumbnail" root="/tmp" path="image_sha256"
|
|
37
|
-
output_store_path "thumbnail"
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
post "images" "uuid" {
|
|
41
|
-
store_file "input" root="/tmp" path="uuid"
|
|
42
|
-
output_store_path "input"
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
post "images" "image_meta" "identify" {
|
|
46
|
-
identify "input"
|
|
47
|
-
store_file "input" root="/tmp" path="image_meta"
|
|
48
|
-
output_store_path "input"
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
post "images" "image_meta" "thumbnail" "input" {
|
|
52
|
-
thumbnail "input" "thumbnail" operation="crop" width="50" height="100"
|
|
53
|
-
store_file "input" root="/tmp" path="image_meta"
|
|
54
|
-
output_store_path "input"
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
post "images" "image_meta" "thumbnails" "input" {
|
|
58
|
-
thumbnail "input" {
|
|
59
|
-
"thumbnail" operation="crop" width="50" height="100"
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
store_file "input" root="/tmp" path="image_meta"
|
|
63
|
-
output_store_path "input"
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
post "images" "image_meta" "thumbnail" {
|
|
67
|
-
thumbnail "input" "thumbnail" operation="crop" width="50" height="100"
|
|
68
|
-
store_file "thumbnail" root="/tmp" path="image_meta"
|
|
69
|
-
output_store_path "thumbnail"
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
post "images" "image_meta" "thumbnails" {
|
|
73
|
-
thumbnail "input" {
|
|
74
|
-
"thumbnail" operation="crop" width="50" height="100"
|
|
75
|
-
}
|
|
76
|
-
store_file "thumbnail" root="/tmp" path="image_meta"
|
|
77
|
-
output_store_path "thumbnail"
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
post "images" "input_image_meta" "thumbnail" {
|
|
81
|
-
thumbnail "input" "thumbnail" operation="crop" width="50" height="100"
|
|
82
|
-
store_file "thumbnail" root="/tmp" path="input_image_meta"
|
|
83
|
-
output_store_path "thumbnail"
|
|
84
|
-
}
|
|
85
|
-
"""
|
|
86
|
-
|
|
87
|
-
@storage @input_digest
|
|
88
|
-
Scenario: Posting picture to file system under input data digest
|
|
89
|
-
Given there is no file /tmp/b0fe25319ba5909a
|
|
90
|
-
Given test.png file content as request body
|
|
91
|
-
When I do POST request http://localhost:3000/images/input_digest
|
|
92
|
-
Then response status will be 200
|
|
93
|
-
And response content type will be text/plain
|
|
94
|
-
And response body will be CRLF ended lines
|
|
95
|
-
"""
|
|
96
|
-
b0fe25319ba5909a
|
|
97
|
-
"""
|
|
98
|
-
Then file /tmp/b0fe25319ba5909a will contain PNG image of size 50x50
|
|
99
|
-
|
|
100
|
-
@storage @input_sha256
|
|
101
|
-
Scenario: Posting picture to file system under input data digest
|
|
102
|
-
Given there is no file /tmp/b0fe25319ba5909aa97fded546847a96d7fdf26e18715b0cfccfcbee52dce57e
|
|
103
|
-
Given test.png file content as request body
|
|
104
|
-
When I do POST request http://localhost:3000/images/input_sha256
|
|
105
|
-
Then response status will be 200
|
|
106
|
-
And response content type will be text/plain
|
|
107
|
-
And response body will be CRLF ended lines
|
|
108
|
-
"""
|
|
109
|
-
b0fe25319ba5909aa97fded546847a96d7fdf26e18715b0cfccfcbee52dce57e
|
|
110
|
-
"""
|
|
111
|
-
Then file /tmp/b0fe25319ba5909aa97fded546847a96d7fdf26e18715b0cfccfcbee52dce57e will contain PNG image of size 50x50
|
|
112
|
-
|
|
113
|
-
# Following tests depend on libpng/ImageMagick version
|
|
114
|
-
#@storage @image_digest
|
|
115
|
-
#Scenario: Posting picture to file system under input data digest
|
|
116
|
-
#Given there is no file /tmp/b0fe25319ba5909a
|
|
117
|
-
#Given test.png file content as request body
|
|
118
|
-
#When I do POST request http://localhost:3000/images/image_digest
|
|
119
|
-
#Then response status will be 200
|
|
120
|
-
#And response content type will be text/plain
|
|
121
|
-
#And response body will be CRLF ended lines
|
|
122
|
-
#"""
|
|
123
|
-
#091000e2c0aee836
|
|
124
|
-
#"""
|
|
125
|
-
#Then file /tmp/091000e2c0aee836 will contain PNG image of size 50x50
|
|
126
|
-
|
|
127
|
-
#@storage @image_sha256
|
|
128
|
-
#Scenario: Posting picture to file system under input data digest
|
|
129
|
-
#Given there is no file /tmp/b0fe25319ba5909aa97fded546847a96d7fdf26e18715b0cfccfcbee52dce57e
|
|
130
|
-
#Given test.png file content as request body
|
|
131
|
-
#When I do POST request http://localhost:3000/images/image_sha256
|
|
132
|
-
#Then response status will be 200
|
|
133
|
-
#And response content type will be text/plain
|
|
134
|
-
#And response body will be CRLF ended lines
|
|
135
|
-
#"""
|
|
136
|
-
#091000e2c0aee836fff432c1151faba86d46690c900c0f6355247a353defa37f
|
|
137
|
-
#"""
|
|
138
|
-
#Then file /tmp/091000e2c0aee836fff432c1151faba86d46690c900c0f6355247a353defa37f will contain PNG image of size 50x50
|
|
139
|
-
|
|
140
|
-
@storage @uuid
|
|
141
|
-
Scenario: Posting picture to file system under input data digest
|
|
142
|
-
Given test.png file content as request body
|
|
143
|
-
When I do POST request http://localhost:3000/images/uuid
|
|
144
|
-
Then response status will be 200
|
|
145
|
-
And response content type will be text/plain
|
|
146
|
-
And response body will contain UUID
|
|
147
|
-
|
|
148
|
-
@storage @image_meta @identify
|
|
149
|
-
Scenario: Posting picture to file system under input data digest
|
|
150
|
-
Given there is no file /tmp/509x719.png
|
|
151
|
-
Given test.png file content as request body
|
|
152
|
-
When I do POST request http://localhost:3000/images/image_meta/identify
|
|
153
|
-
Then response status will be 200
|
|
154
|
-
And response content type will be text/plain
|
|
155
|
-
And response body will be CRLF ended lines
|
|
156
|
-
"""
|
|
157
|
-
509x719.png
|
|
158
|
-
"""
|
|
159
|
-
Then file /tmp/509x719.png will contain PNG image of size 509x719
|
|
160
|
-
|
|
161
|
-
@storage @image_meta @thumbnail
|
|
162
|
-
Scenario: Posting picture to file system under input data digest
|
|
163
|
-
Given test.png file content as request body
|
|
164
|
-
Given there is no file /tmp/50x100.png
|
|
165
|
-
When I do POST request http://localhost:3000/images/image_meta/thumbnail
|
|
166
|
-
Then response status will be 200
|
|
167
|
-
And response content type will be text/plain
|
|
168
|
-
And response body will be CRLF ended lines
|
|
169
|
-
"""
|
|
170
|
-
50x100.png
|
|
171
|
-
"""
|
|
172
|
-
Then file /tmp/50x100.png will contain PNG image of size 50x100
|
|
173
|
-
|
|
174
|
-
@storage @image_meta @thumbnails
|
|
175
|
-
Scenario: Posting picture to file system under input data digest
|
|
176
|
-
Given test.png file content as request body
|
|
177
|
-
Given there is no file /tmp/50x100.png
|
|
178
|
-
When I do POST request http://localhost:3000/images/image_meta/thumbnails
|
|
179
|
-
Then response status will be 200
|
|
180
|
-
And response content type will be text/plain
|
|
181
|
-
And response body will be CRLF ended lines
|
|
182
|
-
"""
|
|
183
|
-
50x100.png
|
|
184
|
-
"""
|
|
185
|
-
Then file /tmp/50x100.png will contain PNG image of size 50x100
|
|
186
|
-
|
|
187
|
-
@storage @input_image_meta
|
|
188
|
-
Scenario: Input image meta variables
|
|
189
|
-
Given there is no file /tmp/509x719.png
|
|
190
|
-
Given test.png file content as request body
|
|
191
|
-
When I do POST request http://localhost:3000/images/input_image_meta/thumbnail
|
|
192
|
-
Then response status will be 200
|
|
193
|
-
And response content type will be text/plain
|
|
194
|
-
And response body will be CRLF ended lines
|
|
195
|
-
"""
|
|
196
|
-
509x719.png
|
|
197
|
-
"""
|
|
198
|
-
Then file /tmp/509x719.png will contain PNG image of size 50x100
|
data/features/support/env.rb
DELETED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
require 'bundler'
|
|
2
|
-
begin
|
|
3
|
-
Bundler.setup(:default, :development)
|
|
4
|
-
rescue Bundler::BundlerError => e
|
|
5
|
-
$stderr.puts e.message
|
|
6
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
|
7
|
-
exit e.status_code
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../lib')
|
|
11
|
-
require 'rspec/expectations'
|
|
12
|
-
|
|
13
|
-
require 'daemon'
|
|
14
|
-
require 'timeout'
|
|
15
|
-
require 'faraday'
|
|
16
|
-
require "open3"
|
|
17
|
-
require "thread"
|
|
18
|
-
require 'tempfile'
|
|
19
|
-
require 'RMagick'
|
|
20
|
-
require 'aws-sdk'
|
|
21
|
-
require 'httpimagestore/aws_sdk_regions_hack'
|
|
22
|
-
require 'digest'
|
|
23
|
-
|
|
24
|
-
class String
|
|
25
|
-
def replace_s3_variables
|
|
26
|
-
string = self.dup
|
|
27
|
-
string.gsub!(/@AWS_ACCESS_KEY_ID@/, ENV['AWS_ACCESS_KEY_ID'])
|
|
28
|
-
string.gsub!(/@AWS_SECRET_ACCESS_KEY@/, ENV['AWS_SECRET_ACCESS_KEY'])
|
|
29
|
-
string.gsub!(/@AWS_S3_TEST_BUCKET@/, ENV['AWS_S3_TEST_BUCKET'])
|
|
30
|
-
string
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def gem_dir
|
|
35
|
-
Pathname.new(__FILE__).dirname + '..' + '..'
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def features_dir
|
|
39
|
-
gem_dir + 'features'
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def support_dir
|
|
43
|
-
features_dir + 'support'
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def script(file)
|
|
47
|
-
gem_dir + 'bin' + file
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def http_client
|
|
51
|
-
@faraday ||= Faraday.new
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def request(method, uri, body, headers)
|
|
55
|
-
http_client.run_request(method.downcase.to_sym, uri.replace_s3_variables, body, headers || {})
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def get(url)
|
|
59
|
-
http_client.get(url).body
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def get_headers(url)
|
|
63
|
-
http_client.get(url).headers
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
@@running_cmd = {}
|
|
67
|
-
def start_server(cmd, pid_file, log_file, test_url)
|
|
68
|
-
if @@running_cmd[pid_file]
|
|
69
|
-
return if @@running_cmd[pid_file] == cmd
|
|
70
|
-
stop_server(pid_file)
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
fork do
|
|
74
|
-
Daemon.daemonize(pid_file, log_file)
|
|
75
|
-
log_file = Pathname.new(log_file)
|
|
76
|
-
log_file.truncate(0) if log_file.exist?
|
|
77
|
-
exec(cmd)
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
@@running_cmd[pid_file] = cmd
|
|
81
|
-
|
|
82
|
-
ppid = Process.pid
|
|
83
|
-
at_exit do
|
|
84
|
-
stop_server(pid_file) if Process.pid == ppid
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
Timeout.timeout(10) do
|
|
88
|
-
begin
|
|
89
|
-
get test_url
|
|
90
|
-
rescue Faraday::Error::ConnectionFailed
|
|
91
|
-
sleep 0.1
|
|
92
|
-
retry
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
def stop_server(pid_file)
|
|
98
|
-
pid_file = Pathname.new(pid_file)
|
|
99
|
-
return unless pid_file.exist?
|
|
100
|
-
|
|
101
|
-
#STDERR.puts http_client.get("http://localhost:3000/stats").body if pid_file.to_s.include? 'httpimagestore'
|
|
102
|
-
pid = pid_file.read.strip.to_i
|
|
103
|
-
|
|
104
|
-
Timeout.timeout(20) do
|
|
105
|
-
begin
|
|
106
|
-
loop do
|
|
107
|
-
Process.kill("TERM", pid)
|
|
108
|
-
sleep 0.1
|
|
109
|
-
end
|
|
110
|
-
rescue Errno::ESRCH
|
|
111
|
-
@@running_cmd.delete pid_file.to_s
|
|
112
|
-
pid_file.unlink
|
|
113
|
-
end
|
|
114
|
-
end
|
|
115
|
-
end
|
|
116
|
-
|
|
Binary file
|
data/features/support/test.empty
DELETED
|
File without changes
|
data/features/support/test.jpg
DELETED
|
Binary file
|
data/features/support/test.png
DELETED
|
Binary file
|
data/features/support/test.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
hello world
|
data/features/support/tiny.png
DELETED
|
Binary file
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
Feature: Forwarding of transaction ID header to thumbnailer
|
|
2
|
-
HTTP Image Store should forward transaction ID header found in the request to HTTP Thumbnailer
|
|
3
|
-
|
|
4
|
-
Background:
|
|
5
|
-
Given httpthumbnailer server is running at http://localhost:3100/health_check
|
|
6
|
-
Given httpimagestore server is running at http://localhost:3000/ with the following configuration
|
|
7
|
-
"""
|
|
8
|
-
post "identify" {
|
|
9
|
-
identify "input"
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
post "single" {
|
|
13
|
-
thumbnail "input" "thumbnail" operation="pad" width="8" height="8"
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
post "multi" {
|
|
17
|
-
thumbnail "input" {
|
|
18
|
-
"small" operation="crop" width=128 height=128 format="jpeg"
|
|
19
|
-
"tiny_png" operation="crop" width=32 height=32 format="png"
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
"""
|
|
23
|
-
|
|
24
|
-
@xid-forwarding
|
|
25
|
-
Scenario: Should forward XID with identify requests
|
|
26
|
-
Given tiny.png file content as request body
|
|
27
|
-
And XID header set to 123
|
|
28
|
-
When I do POST request http://localhost:3000/identify
|
|
29
|
-
Then response status will be 200
|
|
30
|
-
And httpimagestore log will contain xid="123"
|
|
31
|
-
And httpthumbnailer log will contain xid="123"
|
|
32
|
-
|
|
33
|
-
@xid-forwarding
|
|
34
|
-
Scenario: Should forward XID with single thumbnail requests
|
|
35
|
-
Given tiny.png file content as request body
|
|
36
|
-
And XID header set to 123
|
|
37
|
-
When I do POST request http://localhost:3000/single
|
|
38
|
-
Then response status will be 200
|
|
39
|
-
And httpimagestore log will contain xid="123"
|
|
40
|
-
And httpthumbnailer log will contain xid="123"
|
|
41
|
-
|
|
42
|
-
@xid-forwarding
|
|
43
|
-
Scenario: Should forward XID with multi thumbnail requests
|
|
44
|
-
Given tiny.png file content as request body
|
|
45
|
-
And XID header set to 123
|
|
46
|
-
When I do POST request http://localhost:3000/multi
|
|
47
|
-
Then response status will be 200
|
|
48
|
-
And httpimagestore log will contain xid="123"
|
|
49
|
-
And httpthumbnailer log will contain xid="123"
|
data/httpimagestore.gemspec
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
# Generated by jeweler
|
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
|
-
# -*- encoding: utf-8 -*-
|
|
5
|
-
|
|
6
|
-
Gem::Specification.new do |s|
|
|
7
|
-
s.name = "httpimagestore"
|
|
8
|
-
s.version = "1.8.1"
|
|
9
|
-
|
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
|
-
s.authors = ["Jakub Pastuszek"]
|
|
12
|
-
s.date = "2014-08-28"
|
|
13
|
-
s.description = "Thumbnails images using httpthumbnailer and stored data on HTTP server (S3)"
|
|
14
|
-
s.email = "jpastuszek@gmail.com"
|
|
15
|
-
s.executables = ["httpimagestore"]
|
|
16
|
-
s.extra_rdoc_files = [
|
|
17
|
-
"LICENSE.txt",
|
|
18
|
-
"README.md"
|
|
19
|
-
]
|
|
20
|
-
s.files = [
|
|
21
|
-
".document",
|
|
22
|
-
".rspec",
|
|
23
|
-
"Gemfile",
|
|
24
|
-
"Gemfile.lock",
|
|
25
|
-
"LICENSE.txt",
|
|
26
|
-
"README.md",
|
|
27
|
-
"Rakefile",
|
|
28
|
-
"VERSION",
|
|
29
|
-
"bin/httpimagestore",
|
|
30
|
-
"features/cache-control.feature",
|
|
31
|
-
"features/compatibility.feature",
|
|
32
|
-
"features/data-uri.feature",
|
|
33
|
-
"features/encoding.feature",
|
|
34
|
-
"features/error-reporting.feature",
|
|
35
|
-
"features/flexi.feature",
|
|
36
|
-
"features/health-check.feature",
|
|
37
|
-
"features/request-matching.feature",
|
|
38
|
-
"features/rewrite.feature",
|
|
39
|
-
"features/s3-store-and-thumbnail.feature",
|
|
40
|
-
"features/source-failover.feature",
|
|
41
|
-
"features/step_definitions/httpimagestore_steps.rb",
|
|
42
|
-
"features/storage.feature",
|
|
43
|
-
"features/support/env.rb",
|
|
44
|
-
"features/support/test-large.jpg",
|
|
45
|
-
"features/support/test.empty",
|
|
46
|
-
"features/support/test.jpg",
|
|
47
|
-
"features/support/test.png",
|
|
48
|
-
"features/support/test.txt",
|
|
49
|
-
"features/support/tiny.png",
|
|
50
|
-
"features/xid-forwarding.feature",
|
|
51
|
-
"httpimagestore.gemspec",
|
|
52
|
-
"lib/httpimagestore/aws_sdk_regions_hack.rb",
|
|
53
|
-
"lib/httpimagestore/configuration.rb",
|
|
54
|
-
"lib/httpimagestore/configuration/file.rb",
|
|
55
|
-
"lib/httpimagestore/configuration/handler.rb",
|
|
56
|
-
"lib/httpimagestore/configuration/identify.rb",
|
|
57
|
-
"lib/httpimagestore/configuration/output.rb",
|
|
58
|
-
"lib/httpimagestore/configuration/path.rb",
|
|
59
|
-
"lib/httpimagestore/configuration/s3.rb",
|
|
60
|
-
"lib/httpimagestore/configuration/source_failover.rb",
|
|
61
|
-
"lib/httpimagestore/configuration/thumbnailer.rb",
|
|
62
|
-
"lib/httpimagestore/error_reporter.rb",
|
|
63
|
-
"lib/httpimagestore/ruby_string_template.rb",
|
|
64
|
-
"load_test/load_test.1k.23a022f6e.m1.small-comp.csv",
|
|
65
|
-
"load_test/load_test.1k.ec9bde794.m1.small.csv",
|
|
66
|
-
"load_test/load_test.jmx",
|
|
67
|
-
"load_test/thumbnail_specs.csv",
|
|
68
|
-
"load_test/thumbnail_specs_v2.csv",
|
|
69
|
-
"spec/configuration_file_spec.rb",
|
|
70
|
-
"spec/configuration_handler_spec.rb",
|
|
71
|
-
"spec/configuration_identify_spec.rb",
|
|
72
|
-
"spec/configuration_output_spec.rb",
|
|
73
|
-
"spec/configuration_path_spec.rb",
|
|
74
|
-
"spec/configuration_s3_spec.rb",
|
|
75
|
-
"spec/configuration_source_failover_spec.rb",
|
|
76
|
-
"spec/configuration_spec.rb",
|
|
77
|
-
"spec/configuration_thumbnailer_spec.rb",
|
|
78
|
-
"spec/ruby_string_template_spec.rb",
|
|
79
|
-
"spec/spec_helper.rb",
|
|
80
|
-
"spec/support/compute.jpg",
|
|
81
|
-
"spec/support/cuba_response_env.rb",
|
|
82
|
-
"spec/support/full.cfg",
|
|
83
|
-
"spec/support/utf_string.txt"
|
|
84
|
-
]
|
|
85
|
-
s.homepage = "http://github.com/jpastuszek/httpimagestore"
|
|
86
|
-
s.licenses = ["MIT"]
|
|
87
|
-
s.require_paths = ["lib"]
|
|
88
|
-
s.rubygems_version = "1.8.23"
|
|
89
|
-
s.summary = "HTTP based image storage and thumbnailer"
|
|
90
|
-
|
|
91
|
-
if s.respond_to? :specification_version then
|
|
92
|
-
s.specification_version = 3
|
|
93
|
-
|
|
94
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
95
|
-
s.add_runtime_dependency(%q<unicorn-cuba-base>, ["~> 1.2.2"])
|
|
96
|
-
s.add_runtime_dependency(%q<httpthumbnailer-client>, ["~> 1.2.0"])
|
|
97
|
-
s.add_runtime_dependency(%q<aws-sdk>, ["~> 1.10"])
|
|
98
|
-
s.add_runtime_dependency(%q<mime-types>, ["~> 1.17"])
|
|
99
|
-
s.add_runtime_dependency(%q<sdl4r>, ["~> 0.9"])
|
|
100
|
-
s.add_runtime_dependency(%q<msgpack>, ["~> 0.5"])
|
|
101
|
-
s.add_runtime_dependency(%q<addressable>, ["~> 2.3"])
|
|
102
|
-
s.add_development_dependency(%q<faraday>, [">= 0.8"])
|
|
103
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.13"])
|
|
104
|
-
s.add_development_dependency(%q<cucumber>, [">= 0"])
|
|
105
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
|
106
|
-
s.add_development_dependency(%q<rdoc>, ["~> 3.9"])
|
|
107
|
-
s.add_development_dependency(%q<daemon>, ["~> 1"])
|
|
108
|
-
s.add_development_dependency(%q<prawn>, ["= 0.8.4"])
|
|
109
|
-
s.add_development_dependency(%q<httpthumbnailer>, ["~> 1.2.0"])
|
|
110
|
-
else
|
|
111
|
-
s.add_dependency(%q<unicorn-cuba-base>, ["~> 1.2.2"])
|
|
112
|
-
s.add_dependency(%q<httpthumbnailer-client>, ["~> 1.2.0"])
|
|
113
|
-
s.add_dependency(%q<aws-sdk>, ["~> 1.10"])
|
|
114
|
-
s.add_dependency(%q<mime-types>, ["~> 1.17"])
|
|
115
|
-
s.add_dependency(%q<sdl4r>, ["~> 0.9"])
|
|
116
|
-
s.add_dependency(%q<msgpack>, ["~> 0.5"])
|
|
117
|
-
s.add_dependency(%q<addressable>, ["~> 2.3"])
|
|
118
|
-
s.add_dependency(%q<faraday>, [">= 0.8"])
|
|
119
|
-
s.add_dependency(%q<rspec>, ["~> 2.13"])
|
|
120
|
-
s.add_dependency(%q<cucumber>, [">= 0"])
|
|
121
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
|
122
|
-
s.add_dependency(%q<rdoc>, ["~> 3.9"])
|
|
123
|
-
s.add_dependency(%q<daemon>, ["~> 1"])
|
|
124
|
-
s.add_dependency(%q<prawn>, ["= 0.8.4"])
|
|
125
|
-
s.add_dependency(%q<httpthumbnailer>, ["~> 1.2.0"])
|
|
126
|
-
end
|
|
127
|
-
else
|
|
128
|
-
s.add_dependency(%q<unicorn-cuba-base>, ["~> 1.2.2"])
|
|
129
|
-
s.add_dependency(%q<httpthumbnailer-client>, ["~> 1.2.0"])
|
|
130
|
-
s.add_dependency(%q<aws-sdk>, ["~> 1.10"])
|
|
131
|
-
s.add_dependency(%q<mime-types>, ["~> 1.17"])
|
|
132
|
-
s.add_dependency(%q<sdl4r>, ["~> 0.9"])
|
|
133
|
-
s.add_dependency(%q<msgpack>, ["~> 0.5"])
|
|
134
|
-
s.add_dependency(%q<addressable>, ["~> 2.3"])
|
|
135
|
-
s.add_dependency(%q<faraday>, [">= 0.8"])
|
|
136
|
-
s.add_dependency(%q<rspec>, ["~> 2.13"])
|
|
137
|
-
s.add_dependency(%q<cucumber>, [">= 0"])
|
|
138
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
|
139
|
-
s.add_dependency(%q<rdoc>, ["~> 3.9"])
|
|
140
|
-
s.add_dependency(%q<daemon>, ["~> 1"])
|
|
141
|
-
s.add_dependency(%q<prawn>, ["= 0.8.4"])
|
|
142
|
-
s.add_dependency(%q<httpthumbnailer>, ["~> 1.2.0"])
|
|
143
|
-
end
|
|
144
|
-
end
|
|
145
|
-
|