awscli 0.1.2 → 0.1.3

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.
@@ -7,37 +7,46 @@ module Awscli
7
7
 
8
8
  class Files
9
9
  def initialize connection, options = {}
10
- @@conn = connection
10
+ @conn = connection
11
11
  end
12
12
 
13
- def list dir_name
14
- dir = @@conn.directories.get(dir_name)
13
+ def list(dir_name, prefix=nil)
14
+ dir = @conn.directories.get(dir_name)
15
15
  abort "cannot find bucket: #{dir_name}" unless dir
16
16
  puts "LastModified \t SIZE \t Object"
17
- dir.files.each do |file|
18
- puts "#{file.last_modified} \t #{file.content_length} \t #{file.key}"
17
+ if prefix
18
+ dir.files.all(:prefix => prefix).each do |file|
19
+ puts "#{file.last_modified} \t #{file.content_length} \t #{file.key}"
20
+ end
21
+ else
22
+ dir.files.each do |file|
23
+ puts "#{file.last_modified} \t #{file.content_length} \t #{file.key}"
24
+ end
19
25
  end
20
26
  end
21
27
 
22
- def upload_file dir_name, file_path
23
- dir = @@conn.directories.get(dir_name)
28
+ def upload_file(dir_name, file_path, dest_path=nil)
29
+ dir = @conn.directories.get(dir_name)
24
30
  abort "cannot find bucket: #{dir_name}" unless dir
25
31
  file = File.expand_path(file_path)
26
32
  abort "Invalid file path: #{file_path}" unless File.exist?(file)
33
+ if dest_path && !dest_path.end_with?('/')
34
+ dest_path = "#{dest_path}/"
35
+ end
27
36
  file_name = File.basename(file)
28
37
  dir.files.create(
29
- :key => file_name,
38
+ :key => "#{dest_path}#{file_name}",
30
39
  :body => File.open(file),
31
40
  :public => true
32
41
  )
33
42
  puts "Uploaded file: #{file_name} to bucket: #{dir_name}"
34
43
  end
35
44
 
36
- def upload_file_rec options
45
+ def upload_file_rec(options)
37
46
  dir_name, dir_path, threads_count, is_public = options[:bucket_name], options[:dir_path], options[:thread_count], options[:public]
38
47
  dest_path = options[:dest_path] if options[:dest_path]
39
48
  #check if bucket exists
40
- bucket = @@conn.directories.get(dir_name)
49
+ bucket = @conn.directories.get(dir_name)
41
50
  abort "cannot find bucket: #{dir_name}" unless bucket
42
51
  #check if passed path is a dir
43
52
  dir = File.expand_path(dir_path)
@@ -93,9 +102,9 @@ module Awscli
93
102
  puts "Uploaded #{total_files} (#{total_size / 1024} KB)"
94
103
  end
95
104
 
96
- def multipart_upload options
105
+ def multipart_upload(options)
97
106
  bucket_name, file_path, tmp_loc, acl = options[:bucket_name], options[:file_path], options[:tmp_dir], options[:acl]
98
- dir = @@conn.directories.get(bucket_name)
107
+ dir = @conn.directories.get(bucket_name)
99
108
  abort "cannot find bucket: #{bucket_name}" unless dir
100
109
  file = File.expand_path(file_path)
101
110
  abort "Invalid file path: #{file_path}" unless File.exist?(file)
@@ -128,7 +137,7 @@ module Awscli
128
137
 
129
138
  #initiate the mulitpart upload & store the returned upload_id
130
139
  puts "Initializing multipart upload"
131
- multi_part_up = @@conn.initiate_multipart_upload(
140
+ multi_part_up = @conn.initiate_multipart_upload(
132
141
  bucket_name, # name of the bucket to create object in
133
142
  remote_file, # name of the object to create
134
143
  { 'x-amz-acl' => acl }
@@ -142,7 +151,7 @@ module Awscli
142
151
  part_number = (position + 1).to_s
143
152
  puts "Uploading #{part} ..."
144
153
  File.open part do |part_file|
145
- response = @@conn.upload_part(
154
+ response = @conn.upload_part(
146
155
  bucket_name,
147
156
  # file[1..-1],
148
157
  remote_file,
@@ -155,7 +164,7 @@ module Awscli
155
164
  end
156
165
 
157
166
  puts "Completing multipart upload ..."
158
- response = @@conn.complete_multipart_upload(
167
+ response = @conn.complete_multipart_upload(
159
168
  bucket_name,
160
169
  # file[1..-1],
161
170
  remote_file,
@@ -167,8 +176,8 @@ module Awscli
167
176
  puts "Successfully completed multipart upload"
168
177
  end
169
178
 
170
- def download_file dir_name, file_name, path
171
- dir = @@conn.directories.get(dir_name)
179
+ def download_file(dir_name, file_name, path)
180
+ dir = @conn.directories.get(dir_name)
172
181
  abort "cannot find bucket: #{dir_name}" unless dir
173
182
  local_path = File.expand_path(path)
174
183
  abort "Invalid file path: #{path}" unless File.exist?(local_path)
@@ -180,9 +189,9 @@ module Awscli
180
189
  puts "Downloaded file: #{remote_file.key} to path: #{local_path}"
181
190
  end
182
191
 
183
- def delete_file dir_name, file_name
192
+ def delete_file(dir_name, file_name)
184
193
  #TODO: Handle globs for deletions
185
- dir = @@conn.directories.get(dir_name)
194
+ dir = @conn.directories.get(dir_name)
186
195
  abort "cannot find bucket: #{dir_name}" unless dir
187
196
  remote_file = dir.files.get(file_name)
188
197
  abort "cannot find file: #{file_name}" unless remote_file
@@ -190,35 +199,38 @@ module Awscli
190
199
  puts "Deleted file: #{file_name}"
191
200
  end
192
201
 
193
- def copy_file source_dir, source_file, dest_dir, dest_file
194
- @@conn.directories.get(source_dir).files.get(source_file).copy(dest_dir, dest_file)
202
+ def copy_file(source_dir, source_file, dest_dir, dest_file)
203
+ @conn.directories.get(source_dir).files.get(source_file).copy(dest_dir, dest_file)
195
204
  end
196
205
 
197
- def get_public_url dir_name, file_name
198
- url = @@conn.directories.get(dir_name).files.get(file_name).public_url
206
+ def get_public_url(dir_name, file_name)
207
+ url = @conn.directories.get(dir_name).files.get(file_name).public_url
199
208
  puts "public url for the file: #{file_name} is #{url}"
200
209
  end
201
210
  end
202
211
 
203
212
  class Directories
204
- def initialize connection, options = {}
205
- @@conn = connection
213
+ def initialize(connection, options = {})
214
+ @conn = connection
206
215
  end
207
216
 
208
217
  def list
209
- @@conn.directories.table
218
+ @conn.directories.table
210
219
  end
211
220
 
212
- def create bucket_name, is_public
213
- dir = @@conn.directories.create(
221
+ def create(bucket_name, is_public)
222
+ dir = @conn.directories.create(
214
223
  :key => bucket_name,
215
224
  :public => is_public
216
225
  )
226
+ rescue Excon::Errors::Conflict
227
+ puts "Bucket already exists, bucket name should be unique globally"
228
+ else
217
229
  puts "Created bucket: #{dir.key}"
218
230
  end
219
231
 
220
232
  def delete dir_name
221
- dir = @@conn.directories.get(dir_name)
233
+ dir = @conn.directories.get(dir_name)
222
234
  abort "Cannot find bucket #{dir_name}" unless dir
223
235
  #check if the dir is empty or not
224
236
  abort "Bucket is not empty, use rec_delete to force delete bucket" if dir.files.length != 0
@@ -226,7 +238,7 @@ module Awscli
226
238
  puts "Deleted Bucket: #{dir_name}"
227
239
  end
228
240
 
229
- def delete_rec dir_name
241
+ def delete_rec(dir_name)
230
242
  #Forked from https://gist.github.com/bdunagan/1383301
231
243
  data_queue = Queue.new
232
244
  semaphore = Mutex.new
@@ -234,7 +246,7 @@ module Awscli
234
246
  total_listed = 0
235
247
  total_deleted = 0
236
248
  thread_count = 20 #num_of_threads to perform deletion
237
- dir = @@conn.directories.get(dir_name)
249
+ dir = @conn.directories.get(dir_name)
238
250
  abort "Cannot find bucket #{dir_name}" unless dir
239
251
  if dir.files.length != 0
240
252
  if agree("Are you sure want to delete all the objects in the bucket ? ", true)
@@ -288,25 +300,25 @@ module Awscli
288
300
  end
289
301
  end
290
302
 
291
- def get_acl dir_name
292
- dir = @@conn.directories.get(dir_name)
303
+ def get_acl(dir_name)
304
+ dir = @conn.directories.get(dir_name)
293
305
  abort "Cannot find bucket #{dir_name}" unless dir
294
306
  puts dir.acl
295
307
  end
296
308
 
297
- def set_acl dir_name, acl
298
- dir = @@conn.directories.get(dir_name)
309
+ def set_acl(dir_name, acl)
310
+ dir = @conn.directories.get(dir_name)
299
311
  abort "Cannot find bucket #{dir_name}" unless dir
300
312
  dir.acl = acl
301
313
  puts "Acl has been changed to #{acl}"
302
314
  end
303
315
 
304
- def get_logging_status dir_name
305
- puts @@conn.get_bucket_logging(dir_name).body['BucketLoggingStatus']
316
+ def get_logging_status(dir_name)
317
+ puts @conn.get_bucket_logging(dir_name).body['BucketLoggingStatus']
306
318
  end
307
319
 
308
- def set_logging_status dir_name, logging_status = {}
309
- @@conn.put_bucket_logging dir_name, logging_status
320
+ def set_logging_status(dir_name, logging_status = {})
321
+ @conn.put_bucket_logging dir_name, logging_status
310
322
  end
311
323
  end
312
324
 
@@ -1,3 +1,3 @@
1
1
  module Awscli
2
- VERSION = '0.1.2'
2
+ VERSION = '0.1.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awscli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ashrith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-01 00:00:00.000000000 Z
11
+ date: 2013-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -134,6 +134,7 @@ files:
134
134
  - lib/awscli/cli/ec2/vpc/route_tables.rb
135
135
  - lib/awscli/cli/ec2/vpc.rb
136
136
  - lib/awscli/cli/ec2.rb
137
+ - lib/awscli/cli/emr.rb
137
138
  - lib/awscli/cli/iam/group.rb
138
139
  - lib/awscli/cli/iam/policies.rb
139
140
  - lib/awscli/cli/iam/profiles.rb
@@ -143,9 +144,11 @@ files:
143
144
  - lib/awscli/cli/s3/directories.rb
144
145
  - lib/awscli/cli/s3/files.rb
145
146
  - lib/awscli/cli/s3.rb
147
+ - lib/awscli/cli/UsageExamples/emr
146
148
  - lib/awscli/cli.rb
147
149
  - lib/awscli/connection.rb
148
150
  - lib/awscli/ec2.rb
151
+ - lib/awscli/emr.rb
149
152
  - lib/awscli/errors.rb
150
153
  - lib/awscli/helper.rb
151
154
  - lib/awscli/iam.rb