s3_meta_sync 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/s3_meta_sync.rb +7 -13
- data/lib/s3_meta_sync/version.rb +1 -1
- metadata +15 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e0d479fa242abc69a677504e15d1e3907da0d40
|
4
|
+
data.tar.gz: 351802613cb38c566476317eaa4cbcff2ce5f936
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25283e6b0bb280cd37cf24050322b4802b407f7587ab982b0890b00680c0e1ac4d0137d44f353e3f5f1cc46aa363fb1c2ef47a58f11bdeebae0e44517cba36fd
|
7
|
+
data.tar.gz: 96cf366f80bb9340350a8147d158ab9969fa6e734e8d32a694526eeae54b64c65b033dbe3eefb0b6440a59bc4a62e56a7b4e639d44c94a02e5cec9431c5af70b
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/s3_meta_sync.rb
CHANGED
@@ -4,6 +4,7 @@ require "yaml"
|
|
4
4
|
require "digest/md5"
|
5
5
|
require "aws/s3"
|
6
6
|
require "optparse"
|
7
|
+
require "parallel"
|
7
8
|
|
8
9
|
module S3MetaSync
|
9
10
|
RemoteWithoutMeta = Class.new(Exception)
|
@@ -37,7 +38,7 @@ module S3MetaSync
|
|
37
38
|
generate_meta(source)
|
38
39
|
local_info = read_meta(source)
|
39
40
|
|
40
|
-
|
41
|
+
in_multiple_processes(local_info) do |path, md5|
|
41
42
|
next if remote_info[path] == md5
|
42
43
|
upload_file(source, path, destination)
|
43
44
|
end
|
@@ -105,7 +106,7 @@ module S3MetaSync
|
|
105
106
|
generate_meta(destination)
|
106
107
|
local_info = read_meta(destination) # TODO maybe generate !?
|
107
108
|
|
108
|
-
|
109
|
+
in_multiple_processes(remote_info) do |path, md5|
|
109
110
|
next if local_info[path] == md5
|
110
111
|
download_file(source, path, destination)
|
111
112
|
end
|
@@ -123,16 +124,9 @@ module S3MetaSync
|
|
123
124
|
@config[:region] unless @config[:region].to_s.empty?
|
124
125
|
end
|
125
126
|
|
126
|
-
def
|
127
|
-
|
128
|
-
data
|
129
|
-
(1..threads).to_a.map do
|
130
|
-
Thread.new do
|
131
|
-
while chunk = data.pop
|
132
|
-
yield chunk
|
133
|
-
end
|
134
|
-
end
|
135
|
-
end.map(&:join)
|
127
|
+
def in_multiple_processes(data, &block)
|
128
|
+
processes = [@config[:parallel] || 10, data.size].min
|
129
|
+
Parallel.each(data, :in_processes => processes, &block) # we tried threads but that blew up with weird errors when having lot's of uploads :/
|
136
130
|
end
|
137
131
|
end
|
138
132
|
|
@@ -161,7 +155,7 @@ module S3MetaSync
|
|
161
155
|
opts.on("-k", "--key KEY", "AWS access key") { |c| options[:key] = c }
|
162
156
|
opts.on("-s", "--secret SECRET", "AWS secret key") { |c| options[:secret] = c }
|
163
157
|
opts.on("-r", "--region REGION", "AWS region if not us-standard") { |c| options[:region] = c }
|
164
|
-
opts.on("-p", "--parallel COUNT", Integer, "Use COUNT
|
158
|
+
opts.on("-p", "--parallel COUNT", Integer, "Use COUNT processes for download/upload default: 10") { |c| options[:parallel] = c }
|
165
159
|
opts.on("-h", "--help", "Show this.") { puts opts; exit }
|
166
160
|
opts.on("-v", "--version", "Show Version"){ puts VERSION; exit}
|
167
161
|
end.parse!(argv)
|
data/lib/s3_meta_sync/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: s3_meta_sync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
@@ -45,6 +45,20 @@ dependencies:
|
|
45
45
|
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: parallel
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
48
62
|
description:
|
49
63
|
email: michael@grosser.it
|
50
64
|
executables:
|
metadata.gz.sig
CHANGED
Binary file
|