OSDN Git Service

fix:aws sdk
[pettanr/pettanr.git] / lib / s3_picture.rb
index c4c8a76..6e7df83 100644 (file)
@@ -1,7 +1,8 @@
 require 'picture_io'
-require 'aws/s3'
 class PictureIO
   class S3Picture
+    @@client = Aws::S3::Client.new
+    
     def initialize base_dir = 'pettanr'
       @base = base_dir
     end
@@ -28,44 +29,46 @@ class PictureIO
     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