s3_meta_sync 0.11.0 → 0.12.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e68ff7b84c212d7cc29205287b35c9fa181303c1
4
- data.tar.gz: ed8e7d21833f827d6e10e092d6a257fb3b03e29e
3
+ metadata.gz: '09f0ddb82b6163f8a53ff0ba9912bbd8225c3553'
4
+ data.tar.gz: 7e3062e0a16d5f1c76166bfdacd86621a4b0c48f
5
5
  SHA512:
6
- metadata.gz: b0e3edc1923c29beed3247808673e97d805f674564ab2ff1bf4133d2035f04d5af6b7e7a6ea374d8191342a327b8c55414e09a4f5ce01a2fc0282a5a6d174cf4
7
- data.tar.gz: 0b2ebf35c1eb061fc6d3ff6bb47ce9b8818cba8622142e739bdc6f8601946262a74b77213dc5c9c10b8fbc8928cc75d53a607cfccc8ba8953123171a89bc853e
6
+ metadata.gz: 44432cf00d405f9ddaf94ea3376d0b8024237a43ce8fc0f97ad18c04e42ffe5387649dbecf22fd925625d42c9b477dd92aefe5c300872af91843fffb46dcc606
7
+ data.tar.gz: 8865b2d1ec3214bbcf3ac7e409aeaf7114b91d2a338eb40c3b10e06c96f0261fb159e6e84c34be582f39299911ed92cd93ff97b8f7bf526092027c8848c6ace5
data/lib/s3_meta_sync.rb CHANGED
@@ -39,6 +39,8 @@ module S3MetaSync
39
39
  opts.on("-s", "--secret SECRET", "AWS secret key") { |c| options[:secret] = c }
40
40
  opts.on("-r", "--region REGION", "AWS region if not us-standard") { |c| options[:region] = c }
41
41
  opts.on("-p", "--parallel COUNT", Integer, "Use COUNT threads for download/upload default: 10") { |c| options[:parallel] = c }
42
+ opts.on("-o", "--open-timeout TIMEOUT", Integer, "Net::HTTP open timeout in seconds default: 5") { |c| options[:open_timeout] = c }
43
+ opts.on("-t", "--read-timeout TIMEOUT", Integer, "Net::HTTP read timeout in seconds default: 10") { |c| options[:read_timeout] = c }
42
44
  opts.on("--ssl-none", "Do not verify ssl certs") { options[:ssl_none] = true }
43
45
  opts.on("-z", "--zip", "Zip when uploading to save bandwidth") { options[:zip] = true }
44
46
  opts.on("--no-local-changes", "Do not md5 all the local files, they did not change") { options[:no_local_changes] = true }
@@ -81,8 +81,10 @@ module S3MetaSync
81
81
  store_meta(staging_area, remote_meta)
82
82
 
83
83
  verify_integrity!(staging_area, destination, download, remote_meta[:files])
84
+ log "Swapping in directories #{destination} and #{staging_area}"
84
85
  self.class.swap_in_directory(destination, staging_area)
85
86
  FileUtils.mkdir(staging_area) # mktmpdir tries to remove this directory
87
+ log "Download finished"
86
88
  end
87
89
  end
88
90
  end
@@ -129,6 +131,7 @@ module S3MetaSync
129
131
  end
130
132
 
131
133
  def verify_integrity!(staging_area, destination, changed, remote)
134
+ log "Verifying integrity of #{changed.size} files" if changed.size > 0
132
135
  local = md5_hash(staging_area, changed)
133
136
  corrupted = local.select { |file, md5| remote[file] != md5 }.map(&:first)
134
137
  return if corrupted.empty?
@@ -180,6 +183,7 @@ module S3MetaSync
180
183
  end
181
184
 
182
185
  def delete_local_files(local, paths)
186
+ log "Delete #{paths.size} local files" if paths.size > 0
183
187
  paths = paths.map { |path| "#{local}/#{path}" }
184
188
  paths.each { |path| log "Deleting #{path}" }
185
189
  FileUtils.rm_f(paths)
@@ -198,6 +202,7 @@ module S3MetaSync
198
202
  end
199
203
 
200
204
  def store_meta(source, meta)
205
+ log "Storing meta file"
201
206
  file = "#{source}/#{META_FILE}"
202
207
  FileUtils.mkdir_p(File.dirname(file))
203
208
  File.write(file, meta.to_yaml)
@@ -262,12 +267,14 @@ module S3MetaSync
262
267
  "https://s3#{"-#{region}" if region}.amazonaws.com/#{@bucket}/#{path}"
263
268
  end
264
269
  options = (@config[:ssl_none] ? {:ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE} : {})
270
+ options[:open_timeout] = @config.fetch(:open_timeout, 5) # 5 seconds
271
+ options[:read_timeout] = @config.fetch(:read_timeout, 10) # 10 seconds
265
272
  retry_downloads(url: url) { open(url, options) }
266
273
  end
267
274
 
268
275
  def retry_downloads(url:)
269
276
  yield
270
- rescue OpenURI::HTTPError, Errno::ECONNRESET => e
277
+ rescue OpenURI::HTTPError, Errno::ECONNRESET, Errno::ETIMEDOUT, Net::OpenTimeout, Net::ReadTimeout => e
271
278
  max_retries = @config[:max_retries] || 2
272
279
  http_error_retries ||= 0
273
280
  http_error_retries += 1
@@ -290,6 +297,7 @@ module S3MetaSync
290
297
  end
291
298
 
292
299
  def delete_empty_folders(destination)
300
+ log "Deleting empty folders"
293
301
  `find #{destination} -depth -empty -delete`
294
302
  end
295
303
 
@@ -1,3 +1,3 @@
1
1
  module S3MetaSync
2
- VERSION = "0.11.0"
2
+ VERSION = "0.12.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: s3_meta_sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-11 00:00:00.000000000 Z
11
+ date: 2017-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core