s3cp 1.1.13 → 1.1.14
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +13 -0
- data/lib/s3cp/s3cp.rb +2 -0
- data/lib/s3cp/s3ls.rb +17 -5
- data/lib/s3cp/version.rb +1 -1
- metadata +3 -3
data/History.txt
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
=== 1.1.14 (2013-01-27)
|
2
|
+
|
3
|
+
* Changed: s3cp now adds source file basename to destination path if destination
|
4
|
+
path ends with '/'.
|
5
|
+
|
6
|
+
e.g. s3cp s3://bucket/path/to/file.ext s3://bucket/some/other/path/
|
7
|
+
will copy the file to s3://bucket/some/other/path/file.ext
|
8
|
+
|
9
|
+
* Changed: Speed-up s3ls -l (long-listing format with date + size). Performance
|
10
|
+
has regressed since migrating to AWS SDK (from right-aws) since
|
11
|
+
high-level AWS SDK API doesn't support memoization of S3 objects --
|
12
|
+
back to using low-level API.
|
13
|
+
|
1
14
|
=== 1.1.13 (2013-01-27)
|
2
15
|
|
3
16
|
* Added: s3stat --acl option to display associated access-control list XML document.
|
data/lib/s3cp/s3cp.rb
CHANGED
@@ -462,6 +462,7 @@ def copy(from, to, options)
|
|
462
462
|
end
|
463
463
|
end
|
464
464
|
else
|
465
|
+
key_to += File.basename(key_from) if key_to[-1..-1] == "/"
|
465
466
|
s3_to_s3(bucket_from, key_from, bucket_to, key_to, options) unless !options[:overwrite] && s3_exist?(bucket_to, key_to)
|
466
467
|
end
|
467
468
|
when :local_to_s3
|
@@ -477,6 +478,7 @@ def copy(from, to, options)
|
|
477
478
|
end
|
478
479
|
end
|
479
480
|
else
|
481
|
+
key_to += File.basename(key_from) if key_to[-1..-1] == "/"
|
480
482
|
local_to_s3(bucket_to, key_to, File.expand_path(from), options) unless !options[:overwrite] && s3_exist?(bucket_to, key_to)
|
481
483
|
end
|
482
484
|
when :s3_to_local
|
data/lib/s3cp/s3ls.rb
CHANGED
@@ -88,7 +88,7 @@ end
|
|
88
88
|
|
89
89
|
S3CP.load_config()
|
90
90
|
|
91
|
-
@s3 = S3CP.connect()
|
91
|
+
@s3 = S3CP.connect()
|
92
92
|
|
93
93
|
keys = 0
|
94
94
|
rows = 0
|
@@ -124,15 +124,27 @@ begin
|
|
124
124
|
end
|
125
125
|
|
126
126
|
if options[:delimiter]
|
127
|
-
@s3.objects.with_prefix(@key).as_tree(:delimier => options[:delimiter], :append => false).children.each do |entry|
|
127
|
+
@s3.buckets[@bucket].objects.with_prefix(@key).as_tree(:delimier => options[:delimiter], :append => false).children.each do |entry|
|
128
128
|
break if display.call(entry)
|
129
129
|
end
|
130
130
|
else
|
131
|
+
Struct.new("S3Entry", :key, :last_modified, :content_length)
|
132
|
+
|
131
133
|
s3_options = Hash.new
|
132
134
|
s3_options[:limit] = options[:max_keys] if options[:max_keys]
|
133
|
-
|
134
|
-
|
135
|
-
|
135
|
+
|
136
|
+
stop = false
|
137
|
+
|
138
|
+
begin
|
139
|
+
response = @s3.client.list_objects(:bucket_name => @bucket, :prefix => @key)
|
140
|
+
response[:contents].each do |object|
|
141
|
+
entry = Struct::S3Entry.new(object[:key], object[:last_modified], object[:size].to_i)
|
142
|
+
stop = display.call(entry)
|
143
|
+
break if stop
|
144
|
+
end
|
145
|
+
break if stop
|
146
|
+
s3_options.merge!(:marker => response[:contents].last[:key])
|
147
|
+
end while response[:truncated]
|
136
148
|
end
|
137
149
|
rescue Errno::EPIPE
|
138
150
|
# ignore
|
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: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 14
|
10
|
+
version: 1.1.14
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Alex Boisvert
|