Class: Hem::Lib::S3::Remote::IoHandler
- Inherits:
-
Object
- Object
- Hem::Lib::S3::Remote::IoHandler
- Includes:
- Hem::Logging
- Defined in:
- lib/hem/lib/s3/remote/iohandler.rb
Instance Method Summary collapse
-
#initialize(s3, bucket, prefix) ⇒ IoHandler
constructor
A new instance of IoHandler.
- #ls ⇒ Object
- #open(file, mode) ⇒ Object
- #rm(file) ⇒ Object
Methods included from Hem::Logging
Constructor Details
#initialize(s3, bucket, prefix) ⇒ IoHandler
Returns a new instance of IoHandler.
8 9 10 11 12 |
# File 'lib/hem/lib/s3/remote/iohandler.rb', line 8 def initialize s3, bucket, prefix @s3 = s3 @bucket = bucket @prefix = prefix ? "#{prefix.gsub(/^\//, '').chomp('/')}/" : "" end |
Instance Method Details
#ls ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/hem/lib/s3/remote/iohandler.rb', line 14 def ls out = {} logger.debug("s3sync: Listing remote bucket: #{@bucket} w/ prefix #{@prefix}") @s3.bucket(@bucket).objects(:prefix => @prefix).each do |file| filename = file.key.gsub(/^#{@prefix}/, '') next if filename == "" out[filename] = file.etag.gsub('"', '') end return out end |
#open(file, mode) ⇒ Object
25 26 27 28 |
# File 'lib/hem/lib/s3/remote/iohandler.rb', line 25 def open file, mode s3_key = ::File.join(@prefix, file) File.new @s3.bucket(@bucket).object(s3_key), @prefix end |
#rm(file) ⇒ Object
30 31 32 33 |
# File 'lib/hem/lib/s3/remote/iohandler.rb', line 30 def rm file s3_key = ::File.join(@prefix, file) @s3.bucket(@bucket).object(s3_key).delete end |