require 'picture_io'
-require 'aws/s3'
class PictureIO
class S3Picture
+ @@client = Aws::S3::Client.new
+
def initialize base_dir = 'pettanr'
@base = base_dir
end
end
def exist?(filename, subdir = nil)
+ res = true
begin
- AWS::S3::S3Object.exist?(dir(subdir) + filename)
- true
- rescue S3Exception
- false
+ res = @@client.get_object(bucket: self.base, key: dir(subdir) + filename).exist?
+ rescue
+ raise PictureIO::Error
end
+ res
end
def put(bindata, filename, subdir = nil)
+ res = true
begin
- AWS::S3::S3Object.store(dir(subdir) + filename, bindata, base)
- true
- rescue S3Exception
- false
+ @@client.put_object(bucket: self.base, key: dir(subdir) + filename, body: bindata)
+ rescue
+ raise PictureIO::Error
end
+ res
end
def get(filename, subdir = nil)
+ bindata = ''
begin
- bindata = ''
- # if AWS::S3::S3Object.exists?(fn, 'pettanr')
- AWS::S3::S3Object.stream(dir(subdir) + filename, base) do |st|
+ @@client.get_object(bucket: self.base, key: dir(subdir) + filename) do |st|
bindata += st if st
end
- bindata
- rescue S3Exception
- false
+ rescue
+ raise PictureIO::Error
end
+ bindata
end
def delete(filename, subdir = nil)
+ res = true
begin
- AWS::S3::S3Object.delete(dir(subdir) + filename, base)
-# true
- rescue S3Exception
- false
+ @@client.delete_object(bucket: self.base, key: dir(subdir) + filename)
+ rescue
+ raise PictureIO::Error
end
- end
+ res
+ end
end
end