require 'aws-sdk' module Vman class S3 def initialize(bucket_uri) @bucket ||= Aws::S3::Resource.new.bucket(bucket_uri[5..-1]) end def list @bucket.objects end def find(key) @bucket.objects({ prefix: key }) end def store(file_path, key) @bucket.put_object({ body: File.open(file_path), key: key }) end # TODO custom, more descriptive error class def versions(key) _versions = @bucket.object_versions({ prefix: key }) if _versions.count == 0 raise "No object exists for supplied key: #{key}" end _versions end end end