httpimagestore 0.2.2 → 0.2.3
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/VERSION +1 -1
- data/bin/httpimagestore +5 -1
- data/httpimagestore.gemspec +1 -1
- data/lib/httpimagestore/s3_service.rb +5 -1
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.3
|
data/bin/httpimagestore
CHANGED
@@ -13,6 +13,8 @@ options = CLI.new do
|
|
13
13
|
option :bind, :short => :b, :default => IP.new('127.0.0.1'), :cast => IP, :description => "HTTP server bind address - use 0.0.0.0 to bind to all interfaces"
|
14
14
|
option :port, :short => :p, :default => 3000, :cast => Integer, :description => "HTTP server TCP port"
|
15
15
|
option :server, :short => :s, :default => 'mongrel', :description => "Rack server handler like thin, mongrel, webrick, fastcgi etc."
|
16
|
+
option :upload_retry_times, :default => 1, :cast => Integer, :description => "Number of times file upload will be retried in case of an error"
|
17
|
+
option :upload_retry_delay, :default => 0.0, :cast => Float, :description => "Time to sleep between retries"
|
16
18
|
argument :config, :cast => Pathname, :description => "Configuration file path"
|
17
19
|
end.parse!
|
18
20
|
|
@@ -40,6 +42,8 @@ sinatra.set :lock, true
|
|
40
42
|
sinatra.set :logging, (not options.no_logging)
|
41
43
|
sinatra.set :debug, options.debug
|
42
44
|
sinatra.set :uri_encode, (not options.no_uri_encode)
|
45
|
+
sinatra.set :upload_retry_times, options.upload_retry_times
|
46
|
+
sinatra.set :upload_retry_delay, options.upload_retry_delay
|
43
47
|
|
44
48
|
Configuration.from_file(options.config).put(sinatra)
|
45
49
|
|
@@ -55,7 +59,7 @@ end
|
|
55
59
|
sinatra.before do
|
56
60
|
logger.level = Logger::DEBUG if settings.logging and settings.debug
|
57
61
|
# singletons
|
58
|
-
$s3 ||= S3Service.new(settings.s3_key_id, settings.s3_key_secret, settings.s3_bucket, :logger => logger)
|
62
|
+
$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)
|
59
63
|
$thumbnailer ||= HTTPThumbnailerClient.new(settings.thumbnailer_url)
|
60
64
|
end
|
61
65
|
|
data/httpimagestore.gemspec
CHANGED
@@ -19,7 +19,11 @@ class S3Service
|
|
19
19
|
file.content_type = content_type
|
20
20
|
file.content = data
|
21
21
|
|
22
|
-
RetryThis.retry_this(
|
22
|
+
RetryThis.retry_this(
|
23
|
+
:times => (@options[:upload_retry_times] or 1),
|
24
|
+
:sleep => (@options[:upload_retry_delay] or 0.0),
|
25
|
+
:error_types => [Errno::ECONNRESET, S3::Error::RequestTimeout]
|
26
|
+
) do |attempt|
|
23
27
|
@logger.warn "Retrying S3 save operation" if attempt > 1
|
24
28
|
file.save
|
25
29
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: httpimagestore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 3
|
10
|
+
version: 0.2.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jakub Pastuszek
|