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 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