s3cp 0.2.0 → 0.2.1
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 +12 -1
- data/lib/s3cp/completion.rb +11 -0
- data/lib/s3cp/s3ls.rb +9 -5
- data/lib/s3cp/version.rb +1 -1
- metadata +3 -3
data/History.txt
CHANGED
@@ -1,13 +1,24 @@
|
|
1
|
-
=== 0.2.
|
1
|
+
=== 0.2.2 / (Pending)
|
2
|
+
|
3
|
+
=== 0.2.1 / (2012-02-20)
|
4
|
+
|
5
|
+
* Added: Bash completion now supports exclusions through S3CP_EXCLUDES
|
6
|
+
and defaults to excluding keys containing "_$folder$".
|
7
|
+
|
8
|
+
* Changed: s3dir and s3ls --delimiter now display both directories and files
|
2
9
|
|
3
10
|
=== 0.2.0 / (2012-02-20)
|
4
11
|
|
5
12
|
* Added: s3stat command to display S3 object properties
|
13
|
+
|
6
14
|
* Added: s3dir as a shortcut for "s3ls --delimiter / ..."
|
7
15
|
(default to character in S3CP_DELIMITER environment variable or "/" if not defined)
|
16
|
+
|
8
17
|
* Added: s3cp defaults can now be set using environment variables
|
9
18
|
S3CP_OVERWRITE, S3CP_CHECKSUM, S3CP_RETRIES, S3CP_RETRY_DELAY
|
19
|
+
|
10
20
|
* Added: Support for Bash command-line completion of S3 URLs (see below).
|
21
|
+
|
11
22
|
* Fixed: Skip checksum verification for S3 objects with invalid MD5's
|
12
23
|
(details @ https://forums.aws.amazon.com/message.jspa?messageID=234538)
|
13
24
|
|
data/lib/s3cp/completion.rb
CHANGED
@@ -38,6 +38,8 @@ debug "url #{url}"
|
|
38
38
|
delimiter = ENV["S3CP_DELIMITER"] || "/"
|
39
39
|
debug "delimiter #{delimiter}"
|
40
40
|
|
41
|
+
excludes = (ENV["S3CP_EXCLUDES"] || "_$folder$").split(",")
|
42
|
+
|
41
43
|
bucket, prefix = S3CP.bucket_and_key(url)
|
42
44
|
if bucket == "s3"
|
43
45
|
bucket = ""
|
@@ -56,6 +58,7 @@ debug "recursive #{recursive}"
|
|
56
58
|
debug "dirs_only #{@dirs_only}"
|
57
59
|
|
58
60
|
def print_keys(bucket, keys)
|
61
|
+
keys << keys[0] + " " if keys.size == 1 && @dirs_only
|
59
62
|
keys.each do |key|
|
60
63
|
if @legacy_format
|
61
64
|
debug key
|
@@ -103,6 +106,10 @@ if (prefix && prefix.length > 0) || (url =~ /s3\:\/\/[^\/]+\//) || (url =~ /\:$/
|
|
103
106
|
result = []
|
104
107
|
end
|
105
108
|
|
109
|
+
excludes.each do |exclude|
|
110
|
+
result.reject! { |key| key.match(Regexp.escape(exclude)) }
|
111
|
+
end
|
112
|
+
|
106
113
|
debug "result1 #{result.inspect}"
|
107
114
|
|
108
115
|
# there may be longer matches
|
@@ -133,6 +140,10 @@ if (prefix && prefix.length > 0) || (url =~ /s3\:\/\/[^\/]+\//) || (url =~ /\:$/
|
|
133
140
|
debug "result2 #{result.inspect}"
|
134
141
|
end
|
135
142
|
|
143
|
+
excludes.each do |exclude|
|
144
|
+
result.reject! { |key| key.match(Regexp.escape(exclude)) }
|
145
|
+
end
|
146
|
+
|
136
147
|
debug "final #{result.inspect}"
|
137
148
|
|
138
149
|
print_keys(bucket, result)
|
data/lib/s3cp/s3ls.rb
CHANGED
@@ -78,14 +78,18 @@ s3_options["max-keys"] = options[:max_keys] if options[:max_keys] && !options[:d
|
|
78
78
|
s3_options[:delimiter] = options[:delimiter] if options[:delimiter]
|
79
79
|
|
80
80
|
@s3.interface.incrementally_list_bucket(@bucket, s3_options) do |page|
|
81
|
-
entries =
|
81
|
+
entries = []
|
82
82
|
if options[:delimiter]
|
83
|
-
entries
|
84
|
-
|
83
|
+
entries << { :key => page[:contents][0][:key] } if page[:contents].length > 0 && entries.length > 0
|
84
|
+
page[:common_prefixes].each do |entry|
|
85
|
+
entries << { :key => entry }
|
86
|
+
end
|
87
|
+
entries << { :key => nil }
|
85
88
|
end
|
89
|
+
entries += page[:contents]
|
86
90
|
entries.each do |entry|
|
87
|
-
key = "s3://#{@bucket}/#{
|
88
|
-
if options[:long_format]
|
91
|
+
key = entry[:key] ? "s3://#{@bucket}/#{entry[:key]}" : "---"
|
92
|
+
if options[:long_format] && entry[:last_modified] && entry[:size]
|
89
93
|
last_modified = DateTime.parse(entry[:last_modified])
|
90
94
|
size = entry[:size]
|
91
95
|
puts "#{last_modified.strftime(options[:date_format])} #{ "%12d" % size} #{key}"
|
data/lib/s3cp/version.rb
CHANGED
metadata
CHANGED