httpimagestore 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.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
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "httpimagestore"
8
- s.version = "0.2.2"
8
+ s.version = "0.2.3"
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"]
@@ -19,7 +19,11 @@ class S3Service
19
19
  file.content_type = content_type
20
20
  file.content = data
21
21
 
22
- RetryThis.retry_this(:times => 3, :sleep => 0.1, :error_types => [Errno::ECONNRESET, S3::Error::RequestTimeout]) do |attempt|
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: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 2
10
- version: 0.2.2
9
+ - 3
10
+ version: 0.2.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jakub Pastuszek