s3cp 0.1.10 → 0.1.11
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/History.txt +5 -1
- data/lib/s3cp/s3cp.rb +17 -6
- data/lib/s3cp/version.rb +1 -1
- metadata +4 -4
data/History.txt
CHANGED
data/lib/s3cp/s3cp.rb
CHANGED
@@ -12,6 +12,7 @@ require 's3cp/utils'
|
|
12
12
|
options = {}
|
13
13
|
options[:verbose] = $stdout.isatty ? true : false
|
14
14
|
options[:headers] = []
|
15
|
+
options[:overwrite] = true
|
15
16
|
|
16
17
|
op = OptionParser.new do |opts|
|
17
18
|
opts.banner = <<-BANNER
|
@@ -40,6 +41,10 @@ op = OptionParser.new do |opts|
|
|
40
41
|
options[:recursive] = true
|
41
42
|
end
|
42
43
|
|
44
|
+
opts.on("--no-overwrite", "Does not overwrite existing files") do
|
45
|
+
options[:overwrite] = false
|
46
|
+
end
|
47
|
+
|
43
48
|
opts.separator ""
|
44
49
|
|
45
50
|
opts.on('--headers \'Header1: Header1Value\',\'Header2: Header2Value\'', Array, "Headers to set on the item in S3." ) do |h|
|
@@ -170,6 +175,12 @@ def s3_to_local(bucket_from, key_from, dest)
|
|
170
175
|
end
|
171
176
|
end
|
172
177
|
|
178
|
+
def s3_exist?(bucket, key)
|
179
|
+
metadata = @s3.interface.head(bucket, key)
|
180
|
+
puts "exist? #{bucket} #{key} => #{metadata != nil}"
|
181
|
+
(metadata != nil)
|
182
|
+
end
|
183
|
+
|
173
184
|
def copy(from, to, options)
|
174
185
|
bucket_from, key_from = S3CP.bucket_and_key(from)
|
175
186
|
bucket_to, key_to = S3CP.bucket_and_key(to)
|
@@ -187,10 +198,10 @@ def copy(from, to, options)
|
|
187
198
|
end
|
188
199
|
keys.each do |key|
|
189
200
|
dest = no_slash(key_to) + '/' + relative(key_from, key)
|
190
|
-
s3_to_s3(bucket_from, key, bucket_to, dest)
|
201
|
+
s3_to_s3(bucket_from, key, bucket_to, dest) unless !options[:overwrite] && s3_exist?(bucket_to, dest)
|
191
202
|
end
|
192
203
|
else
|
193
|
-
s3_to_s3(bucket_from, key_from, bucket_to, key_to)
|
204
|
+
s3_to_s3(bucket_from, key_from, bucket_to, key_to) unless !options[:overwrite] && s3_exist?(bucket_to, key_to)
|
194
205
|
end
|
195
206
|
when :local_to_s3
|
196
207
|
if options[:recursive]
|
@@ -198,10 +209,10 @@ def copy(from, to, options)
|
|
198
209
|
files.each do |f|
|
199
210
|
f = File.expand_path(f)
|
200
211
|
key = no_slash(key_to) + '/' + relative(from, f)
|
201
|
-
local_to_s3(bucket_to, key, f)
|
212
|
+
local_to_s3(bucket_to, key, f) unless !options[:overwrite] && s3_exist?(bucket_to, key)
|
202
213
|
end
|
203
214
|
else
|
204
|
-
local_to_s3(bucket_to, key_to, File.expand_path(from))
|
215
|
+
local_to_s3(bucket_to, key_to, File.expand_path(from)) unless !options[:overwrite] && s3_exist?(bucket_to, key_to)
|
205
216
|
end
|
206
217
|
when :s3_to_local
|
207
218
|
if options[:recursive]
|
@@ -215,12 +226,12 @@ def copy(from, to, options)
|
|
215
226
|
dir = File.dirname(dest)
|
216
227
|
FileUtils.mkdir_p dir unless File.exist? dir
|
217
228
|
fail "Destination path is not a directory: #{dir}" unless File.directory?(dir)
|
218
|
-
s3_to_local(bucket_from, key, dest)
|
229
|
+
s3_to_local(bucket_from, key, dest) unless !options[:overwrite] && File.exist?(dest)
|
219
230
|
end
|
220
231
|
else
|
221
232
|
dest = File.expand_path(to)
|
222
233
|
dest = File.join(dest, File.basename(key_from)) if File.directory?(dest)
|
223
|
-
s3_to_local(bucket_from, key_from, dest)
|
234
|
+
s3_to_local(bucket_from, key_from, dest) unless !options[:overwrite] && File.exist?(dest)
|
224
235
|
end
|
225
236
|
when :local_to_local
|
226
237
|
if options[:recursive]
|
data/lib/s3cp/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: s3cp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 11
|
10
|
+
version: 0.1.11
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Alex Boisvert
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-02-03 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
prerelease: false
|