httpimagestore 0.3.1 → 0.3.2
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 +3 -2
- data/Gemfile.lock +27 -25
- data/VERSION +1 -1
- data/bin/httpimagestore +22 -12
- data/features/httpimagestore.feature +1 -0
- data/features/step_definitions/httpimagestore_steps.rb +4 -2
- data/httpimagestore.gemspec +8 -8
- metadata +6 -6
data/Gemfile
CHANGED
|
@@ -15,9 +15,10 @@ group :development do
|
|
|
15
15
|
gem "rspec", "~> 2.8.0"
|
|
16
16
|
gem "cucumber", ">= 0"
|
|
17
17
|
gem "jeweler", "~> 1.6.4"
|
|
18
|
-
gem "
|
|
18
|
+
gem "simplecov", ">= 0"
|
|
19
19
|
gem "rdoc", "~> 3.9"
|
|
20
20
|
gem "daemon", "~> 1"
|
|
21
|
-
gem "httpthumbnailer", "~> 0.
|
|
21
|
+
gem "httpthumbnailer", "~> 0.2"
|
|
22
22
|
gem "prawn", "= 0.8.4"
|
|
23
23
|
end
|
|
24
|
+
|
data/Gemfile.lock
CHANGED
|
@@ -2,40 +2,40 @@ GEM
|
|
|
2
2
|
remote: http://rubygems.org/
|
|
3
3
|
specs:
|
|
4
4
|
builder (3.0.0)
|
|
5
|
-
cli (1.1.
|
|
6
|
-
cucumber (1.1
|
|
5
|
+
cli (1.1.1)
|
|
6
|
+
cucumber (1.2.1)
|
|
7
7
|
builder (>= 2.1.2)
|
|
8
|
-
diff-lcs (>= 1.1.
|
|
9
|
-
gherkin (~> 2.
|
|
8
|
+
diff-lcs (>= 1.1.3)
|
|
9
|
+
gherkin (~> 2.11.0)
|
|
10
10
|
json (>= 1.4.6)
|
|
11
|
-
term-ansicolor (>= 1.0.6)
|
|
12
11
|
daemon (1.1.0)
|
|
13
12
|
daemons (1.0.10)
|
|
14
13
|
diff-lcs (1.1.3)
|
|
15
14
|
gem_plugin (0.2.3)
|
|
16
|
-
gherkin (2.
|
|
15
|
+
gherkin (2.11.2)
|
|
17
16
|
json (>= 1.4.6)
|
|
18
17
|
git (1.2.5)
|
|
19
|
-
haml (3.1.
|
|
20
|
-
httpclient (2.2.
|
|
21
|
-
httpthumbnailer (0.1
|
|
18
|
+
haml (3.1.7)
|
|
19
|
+
httpclient (2.2.7)
|
|
20
|
+
httpthumbnailer (0.3.1)
|
|
22
21
|
cli (~> 1.1.0)
|
|
23
22
|
haml (~> 3)
|
|
24
|
-
mongrel (>= 1.
|
|
23
|
+
mongrel (>= 1.2.0.pre2)
|
|
25
24
|
rmagick (~> 2)
|
|
26
25
|
ruby-ip (~> 0.9)
|
|
27
26
|
sinatra (>= 1.2.6)
|
|
28
|
-
httpthumbnailer-client (0.1.
|
|
29
|
-
httpclient (>= 2.2
|
|
27
|
+
httpthumbnailer-client (0.1.1)
|
|
28
|
+
httpclient (>= 2.2)
|
|
30
29
|
jeweler (1.6.4)
|
|
31
30
|
bundler (~> 1.0)
|
|
32
31
|
git (>= 1.2.5)
|
|
33
32
|
rake
|
|
34
|
-
json (1.
|
|
33
|
+
json (1.7.5)
|
|
35
34
|
mime-types (1.17.2)
|
|
36
35
|
mongrel (1.2.0.pre2)
|
|
37
36
|
daemons (~> 1.0.10)
|
|
38
37
|
gem_plugin (~> 0.2.3)
|
|
38
|
+
multi_json (1.3.6)
|
|
39
39
|
prawn (0.8.4)
|
|
40
40
|
prawn-core (>= 0.8.4, < 0.9)
|
|
41
41
|
prawn-layout (>= 0.8.4, < 0.9)
|
|
@@ -44,12 +44,11 @@ GEM
|
|
|
44
44
|
prawn-layout (0.8.4)
|
|
45
45
|
prawn-security (0.8.4)
|
|
46
46
|
proxies (0.2.1)
|
|
47
|
-
rack (1.
|
|
48
|
-
rack-protection (1.
|
|
47
|
+
rack (1.4.1)
|
|
48
|
+
rack-protection (1.2.0)
|
|
49
49
|
rack
|
|
50
50
|
rake (0.9.2.2)
|
|
51
|
-
|
|
52
|
-
rdoc (3.11)
|
|
51
|
+
rdoc (3.12)
|
|
53
52
|
json (~> 1.4)
|
|
54
53
|
retry-this (1.1)
|
|
55
54
|
rmagick (2.13.1)
|
|
@@ -61,14 +60,17 @@ GEM
|
|
|
61
60
|
rspec-expectations (2.8.0)
|
|
62
61
|
diff-lcs (~> 1.1.2)
|
|
63
62
|
rspec-mocks (2.8.0)
|
|
64
|
-
ruby-ip (0.9.
|
|
65
|
-
s3 (0.3.
|
|
63
|
+
ruby-ip (0.9.1)
|
|
64
|
+
s3 (0.3.11)
|
|
66
65
|
proxies (~> 0.2.0)
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
simplecov (0.6.4)
|
|
67
|
+
multi_json (~> 1.0)
|
|
68
|
+
simplecov-html (~> 0.5.3)
|
|
69
|
+
simplecov-html (0.5.3)
|
|
70
|
+
sinatra (1.3.3)
|
|
71
|
+
rack (~> 1.3, >= 1.3.6)
|
|
72
|
+
rack-protection (~> 1.2)
|
|
70
73
|
tilt (~> 1.3, >= 1.3.3)
|
|
71
|
-
term-ansicolor (1.0.7)
|
|
72
74
|
tilt (1.3.3)
|
|
73
75
|
|
|
74
76
|
PLATFORMS
|
|
@@ -78,16 +80,16 @@ DEPENDENCIES
|
|
|
78
80
|
cli (~> 1.1.0)
|
|
79
81
|
cucumber
|
|
80
82
|
daemon (~> 1)
|
|
81
|
-
httpthumbnailer (~> 0.
|
|
83
|
+
httpthumbnailer (~> 0.2)
|
|
82
84
|
httpthumbnailer-client (~> 0.1.0)
|
|
83
85
|
jeweler (~> 1.6.4)
|
|
84
86
|
mime-types (~> 1.17.2)
|
|
85
87
|
mongrel (>= 1.2.0.pre2)
|
|
86
88
|
prawn (= 0.8.4)
|
|
87
|
-
rcov
|
|
88
89
|
rdoc (~> 3.9)
|
|
89
90
|
retry-this (~> 1.1)
|
|
90
91
|
rspec (~> 2.8.0)
|
|
91
92
|
ruby-ip (~> 0.9)
|
|
92
93
|
s3 (~> 0.3)
|
|
94
|
+
simplecov
|
|
93
95
|
sinatra (>= 1.2.6)
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.3.
|
|
1
|
+
0.3.2
|
data/bin/httpimagestore
CHANGED
|
@@ -55,13 +55,6 @@ class ThumbnailingError < RuntimeError
|
|
|
55
55
|
attr_reader :remote_error
|
|
56
56
|
end
|
|
57
57
|
|
|
58
|
-
sinatra.before do
|
|
59
|
-
logger.level = Logger::DEBUG if settings.logging and settings.debug
|
|
60
|
-
# singletons
|
|
61
|
-
$s3 ||= S3Service.new(settings.s3_key_id, settings.s3_key_secret, settings.s3_bucket, :logger => logger, :upload_retry_times => settings.upload_retry_times, :upload_retry_delay => settings.upload_retry_delay)
|
|
62
|
-
$thumbnailer ||= HTTPThumbnailerClient.new(settings.thumbnailer_url)
|
|
63
|
-
end
|
|
64
|
-
|
|
65
58
|
sinatra.helpers do
|
|
66
59
|
def hatl_response(status, msg)
|
|
67
60
|
headers "Content-Type" => "text/plain"
|
|
@@ -70,7 +63,13 @@ sinatra.helpers do
|
|
|
70
63
|
end
|
|
71
64
|
|
|
72
65
|
def halt_exception(status, exception)
|
|
73
|
-
|
|
66
|
+
msg = "Error: #{exception.class.name}: #{exception}"
|
|
67
|
+
if status >= 500
|
|
68
|
+
logger.error msg
|
|
69
|
+
else
|
|
70
|
+
logger.warn msg
|
|
71
|
+
end
|
|
72
|
+
hatl_response(status, msg)
|
|
74
73
|
end
|
|
75
74
|
|
|
76
75
|
def digest(data)
|
|
@@ -78,6 +77,17 @@ sinatra.helpers do
|
|
|
78
77
|
end
|
|
79
78
|
end
|
|
80
79
|
|
|
80
|
+
sinatra.before do
|
|
81
|
+
begin
|
|
82
|
+
logger.level = Logger::DEBUG if settings.logging and settings.debug
|
|
83
|
+
# singletons
|
|
84
|
+
$s3 ||= S3Service.new(settings.s3_key_id, settings.s3_key_secret, settings.s3_bucket, :logger => logger, :upload_retry_times => settings.upload_retry_times, :upload_retry_delay => settings.upload_retry_delay)
|
|
85
|
+
$thumbnailer ||= HTTPThumbnailerClient.new(settings.thumbnailer_url)
|
|
86
|
+
rescue => exception
|
|
87
|
+
halt_exception(500, exception)
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
81
91
|
sinatra.get '/' do
|
|
82
92
|
"hello"
|
|
83
93
|
end
|
|
@@ -130,12 +140,12 @@ end
|
|
|
130
140
|
|
|
131
141
|
# problem with singe thumbnail
|
|
132
142
|
sinatra.error ThumbnailingError do
|
|
133
|
-
|
|
134
|
-
case
|
|
143
|
+
exception = env['sinatra.error']
|
|
144
|
+
case exception.remote_error.type
|
|
135
145
|
when "Thumbnailer::ImageTooLargeError"
|
|
136
|
-
halt_exception(413,
|
|
146
|
+
halt_exception(413, exception)
|
|
137
147
|
else
|
|
138
|
-
halt_exception(500,
|
|
148
|
+
halt_exception(500, exception)
|
|
139
149
|
end
|
|
140
150
|
end
|
|
141
151
|
|
|
@@ -20,6 +20,7 @@ Feature: Storing of original image and specified classes of its thumbnails on S3
|
|
|
20
20
|
Given httpthumbnailer log is empty
|
|
21
21
|
Given httpthumbnailer server is running at http://localhost:3100/
|
|
22
22
|
Given issthumbtest S3 bucket with key AKIAJMUYVYOSACNXLPTQ and secret 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
|
|
23
|
+
Given Content-Type header set to image/autodetect
|
|
23
24
|
|
|
24
25
|
Scenario: Putting original and its thumbnails to S3 bucket
|
|
25
26
|
Given there is no 4006450256177f4a.jpg file in S3 bucket
|
|
@@ -25,11 +25,13 @@ Given /httpthumbnailer server is running at (.*)/ do |url|
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
Given /httpimagestore log is empty/ do
|
|
28
|
-
|
|
28
|
+
log = support_dir + 'server.log'
|
|
29
|
+
log.truncate(0) if log.exist?
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
Given /httpthumbnailer log is empty/ do
|
|
32
|
-
|
|
33
|
+
log = support_dir + 'thumbniler.log'
|
|
34
|
+
log.truncate(0) if log.exist?
|
|
33
35
|
end
|
|
34
36
|
|
|
35
37
|
Given /(.*) file content as request body/ do |file|
|
data/httpimagestore.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = "httpimagestore"
|
|
8
|
-
s.version = "0.3.
|
|
8
|
+
s.version = "0.3.2"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Jakub Pastuszek"]
|
|
12
|
-
s.date = "2012-
|
|
12
|
+
s.date = "2012-09-05"
|
|
13
13
|
s.description = "Thumbnails images using httpthumbnailer and stored data on HTTP server (S3)"
|
|
14
14
|
s.email = "jpastuszek@gmail.com"
|
|
15
15
|
s.executables = ["httpimagestore"]
|
|
@@ -64,10 +64,10 @@ Gem::Specification.new do |s|
|
|
|
64
64
|
s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
|
|
65
65
|
s.add_development_dependency(%q<cucumber>, [">= 0"])
|
|
66
66
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
|
67
|
-
s.add_development_dependency(%q<
|
|
67
|
+
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
|
68
68
|
s.add_development_dependency(%q<rdoc>, ["~> 3.9"])
|
|
69
69
|
s.add_development_dependency(%q<daemon>, ["~> 1"])
|
|
70
|
-
s.add_development_dependency(%q<httpthumbnailer>, ["~> 0.
|
|
70
|
+
s.add_development_dependency(%q<httpthumbnailer>, ["~> 0.2"])
|
|
71
71
|
s.add_development_dependency(%q<prawn>, ["= 0.8.4"])
|
|
72
72
|
else
|
|
73
73
|
s.add_dependency(%q<sinatra>, [">= 1.2.6"])
|
|
@@ -81,10 +81,10 @@ Gem::Specification.new do |s|
|
|
|
81
81
|
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
|
82
82
|
s.add_dependency(%q<cucumber>, [">= 0"])
|
|
83
83
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
|
84
|
-
s.add_dependency(%q<
|
|
84
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
85
85
|
s.add_dependency(%q<rdoc>, ["~> 3.9"])
|
|
86
86
|
s.add_dependency(%q<daemon>, ["~> 1"])
|
|
87
|
-
s.add_dependency(%q<httpthumbnailer>, ["~> 0.
|
|
87
|
+
s.add_dependency(%q<httpthumbnailer>, ["~> 0.2"])
|
|
88
88
|
s.add_dependency(%q<prawn>, ["= 0.8.4"])
|
|
89
89
|
end
|
|
90
90
|
else
|
|
@@ -99,10 +99,10 @@ Gem::Specification.new do |s|
|
|
|
99
99
|
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
|
100
100
|
s.add_dependency(%q<cucumber>, [">= 0"])
|
|
101
101
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
|
102
|
-
s.add_dependency(%q<
|
|
102
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
103
103
|
s.add_dependency(%q<rdoc>, ["~> 3.9"])
|
|
104
104
|
s.add_dependency(%q<daemon>, ["~> 1"])
|
|
105
|
-
s.add_dependency(%q<httpthumbnailer>, ["~> 0.
|
|
105
|
+
s.add_dependency(%q<httpthumbnailer>, ["~> 0.2"])
|
|
106
106
|
s.add_dependency(%q<prawn>, ["= 0.8.4"])
|
|
107
107
|
end
|
|
108
108
|
end
|
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.3.
|
|
4
|
+
version: 0.3.2
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-
|
|
12
|
+
date: 2012-09-05 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: sinatra
|
|
@@ -188,7 +188,7 @@ dependencies:
|
|
|
188
188
|
- !ruby/object:Gem::Version
|
|
189
189
|
version: 1.6.4
|
|
190
190
|
- !ruby/object:Gem::Dependency
|
|
191
|
-
name:
|
|
191
|
+
name: simplecov
|
|
192
192
|
requirement: !ruby/object:Gem::Requirement
|
|
193
193
|
none: false
|
|
194
194
|
requirements:
|
|
@@ -242,7 +242,7 @@ dependencies:
|
|
|
242
242
|
requirements:
|
|
243
243
|
- - ~>
|
|
244
244
|
- !ruby/object:Gem::Version
|
|
245
|
-
version: 0.
|
|
245
|
+
version: '0.2'
|
|
246
246
|
type: :development
|
|
247
247
|
prerelease: false
|
|
248
248
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -250,7 +250,7 @@ dependencies:
|
|
|
250
250
|
requirements:
|
|
251
251
|
- - ~>
|
|
252
252
|
- !ruby/object:Gem::Version
|
|
253
|
-
version: 0.
|
|
253
|
+
version: '0.2'
|
|
254
254
|
- !ruby/object:Gem::Dependency
|
|
255
255
|
name: prawn
|
|
256
256
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -316,7 +316,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
316
316
|
version: '0'
|
|
317
317
|
segments:
|
|
318
318
|
- 0
|
|
319
|
-
hash:
|
|
319
|
+
hash: -3544343476789840343
|
|
320
320
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
321
321
|
none: false
|
|
322
322
|
requirements:
|