OSDN Git Service

fix:error dlg
[pettanr/pettanr.git] / lib / s3_picture.rb
index 6e7df83..0b06157 100644 (file)
@@ -1,18 +1,36 @@
 require 'picture_io'
 class PictureIO
+  Aws.config.update(
+    region: Rails.application.secrets.aws_region, 
+    credentials: Aws::Credentials.new(
+      Rails.application.secrets.aws_access_key_id, 
+      Rails.application.secrets.aws_secret_access_key
+    )
+  )
   class S3Picture
     @@client = Aws::S3::Client.new
     
-    def initialize base_dir = 'pettanr'
-      @base = base_dir
+    def initialize host_dir = 'pettanr', base_dir = ''
+      @host_dir = host_dir
+      @base_dir = base_dir
+      s3 = Aws::S3::Resource.new
+      @bucket = s3.bucket(@host_dir)
     end
     
-    def base
-      @base
+    def self.client
+      @@client
     end
     
-    def base=(b)
-      @base = b
+    def bucket
+      @bucket
+    end
+    
+    def host_dir
+      @host_dir
+    end
+    
+    def host_dir=(d)
+      @host_dir = d
     end
     
     def self.subdirs
@@ -25,13 +43,13 @@ class PictureIO
       else
         subdir.to_s + '/'
       end
-      sd
+      @base_dir + '/' + sd
     end
     
     def exist?(filename, subdir = nil)
       res = true
       begin
-        res = @@client.get_object(bucket: self.base, key: dir(subdir) + filename).exist?
+        res = self.bucket.object(dir(subdir) + filename).exists?
       rescue
         raise PictureIO::Error
       end
@@ -41,7 +59,7 @@ class PictureIO
     def put(bindata, filename, subdir = nil)
       res = true
       begin
-        @@client.put_object(bucket: self.base, key: dir(subdir) + filename, body: bindata)
+        @@client.put_object(bucket: self.host_dir, key: dir(subdir) + filename, body: bindata)
       rescue
         raise PictureIO::Error
       end
@@ -51,7 +69,7 @@ class PictureIO
     def get(filename, subdir = nil)
       bindata = ''
       begin
-        @@client.get_object(bucket: self.base, key: dir(subdir) + filename) do |st|
+        @@client.get_object(bucket: self.host_dir, key: dir(subdir) + filename) do |st|
           bindata += st if st
         end
       rescue
@@ -63,7 +81,7 @@ class PictureIO
     def delete(filename, subdir = nil)
       res = true
       begin
-        @@client.delete_object(bucket: self.base, key: dir(subdir) + filename)
+        @@client.delete_object(bucket: self.host_dir, key: dir(subdir) + filename)
       rescue
         raise PictureIO::Error
       end