Class: S3Wrapper

Inherits:
Object
  • Object
show all
Defined in:
lib/s3_wrapper.rb

Instance Method Summary collapse

Constructor Details

#initialize(bucket, options = {}) ⇒ S3Wrapper

Returns a new instance of S3Wrapper.



7
8
9
10
11
# File 'lib/s3_wrapper.rb', line 7

def initialize(bucket, options={})
  @bucket = AWS::S3.new(options).buckets[bucket]
  #TODO throw exception if bucket does not exist
  @objects = @bucket.objects
end

Instance Method Details

#cpObject

TODO



91
92
# File 'lib/s3_wrapper.rb', line 91

def cp
end

#get(key) ⇒ Object



13
14
15
# File 'lib/s3_wrapper.rb', line 13

def get(key)
  @objects[key].read
end

#get_file(key, filename = key) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/s3_wrapper.rb', line 17

def get_file(key, filename=key)
  File.open(filename, 'w') do |fh|
    @objects[key].read do |chunk|
      fh.write(chunk)
    end
  end
end

#ls(key) ⇒ Object



34
35
36
# File 'lib/s3_wrapper.rb', line 34

def ls(key)
  get_object_description(@objects[key]) if @objects[key].exists?
end

#ls_ifObject

TODO



64
65
# File 'lib/s3_wrapper.rb', line 64

def ls_if
end

#ls_prefix(key_prefix) ⇒ Object



38
39
40
# File 'lib/s3_wrapper.rb', line 38

def ls_prefix(key_prefix)
  @objects.with_prefix(key_prefix).map {|obj| get_object_description(obj) }
end

#ls_regexp(key_regexp) ⇒ Object



53
54
55
56
57
58
59
60
61
# File 'lib/s3_wrapper.rb', line 53

def ls_regexp(key_regexp)
  descriptions = []

  @objects.each do |obj|
    descriptions << get_object_description(obj) if obj.key =~ key_regexp
  end

  descriptions
end

#ls_substring(key_substring, key_prefix = nil) ⇒ Object



42
43
44
45
46
47
48
49
50
51
# File 'lib/s3_wrapper.rb', line 42

def ls_substring(key_substring, key_prefix=nil)
  descriptions = []
  objects = key_prefix ? @objects.with_prefix(key_prefix) : @objects

  objects.each do |obj|
    descriptions << get_object_description(obj) if obj.key =~ /#{key_substring}/
  end

  descriptions
end

#mv(src_key, dst_key, dst_bucket = @bucket.name) ⇒ Object



67
68
69
# File 'lib/s3_wrapper.rb', line 67

def mv(src_key, dst_key, dst_bucket=@bucket.name)
  @objects[src_key].move_to(dst_key, :bucket_name => dst_bucket)
end

#mv_prefix(src_prefix, dst_bucket) ⇒ Object

TODO



72
73
74
# File 'lib/s3_wrapper.rb', line 72

def mv_prefix(src_prefix, dst_bucket)
  raise_if_dst_bucket_same_as_src(dst_bucket)
end

#mv_regexpObject

TODO



81
82
# File 'lib/s3_wrapper.rb', line 81

def mv_regexp()
end

#mv_substringObject

TODO



77
78
# File 'lib/s3_wrapper.rb', line 77

def mv_substring()
end

#put(key, data) ⇒ Object



25
26
27
# File 'lib/s3_wrapper.rb', line 25

def put(key, data)
  @objects[key].write(data)
end

#put_file(filename, key = nil) ⇒ Object



29
30
31
32
# File 'lib/s3_wrapper.rb', line 29

def put_file(filename, key=nil)
  key ||= File.basename(filename)
  @objects[key].write(:file => filename)
end

#rm(key, options = {}) ⇒ Object



94
95
96
# File 'lib/s3_wrapper.rb', line 94

def rm(key, options={})
  @objects[key].delete
end

#rm_if(&block) ⇒ Object



116
117
118
# File 'lib/s3_wrapper.rb', line 116

def rm_if(&block)
  @objects.delete_if(&block)
end

#rm_prefix(key_prefix) ⇒ Object



98
99
100
# File 'lib/s3_wrapper.rb', line 98

def rm_prefix(key_prefix)
  @objects.with_prefix(key_prefix).each {|obj| obj.delete }
end

#rm_regexp(key_regexp) ⇒ Object



110
111
112
113
114
# File 'lib/s3_wrapper.rb', line 110

def rm_regexp(key_regexp)
  @objects.each do |obj|
    obj.delete if obj.key =~ key_regexp
  end
end

#rm_substring(key_substring, key_prefix = nil) ⇒ Object



102
103
104
105
106
107
108
# File 'lib/s3_wrapper.rb', line 102

def rm_substring(key_substring, key_prefix=nil)
  objects = key_prefix ? @objects.with_prefix(key_prefix) : @objects

  objects.each do |obj|
    obj.delete if obj.key =~ /#{key_substring}/
  end
end