OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
authoryasushiito <yas@pen-chan.jp>
Thu, 13 Aug 2015 02:59:15 +0000 (11:59 +0900)
committeryasushiito <yas@pen-chan.jp>
Thu, 13 Aug 2015 02:59:15 +0000 (11:59 +0900)
Gemfile
app/views/original_pictures/show.html.erb
config/application.rb
config/initializers/aws.rb [deleted file]
config/picture_io.yml.org
config/secrets.yml.org
lib/local_picture.rb
lib/s3_picture.rb

diff --git a/Gemfile b/Gemfile
index 76ef083..f093162 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -1,3 +1,4 @@
+ruby '2.1.6'
 source 'https://rubygems.org'
 gem 'specific_install'
 
@@ -12,9 +13,9 @@ gem 'underscore-rails'
 gem 'rails-timeago'
 gem 'kaminari'
 gem 'sanitize'
-gem 'aws-s3'
+#gem 'aws-s3'
 #gem 'aws-s3', :git => 'https://github.com/bartoszkopinski/aws-s3'
-#gem 'aws-sdk', '~> 2.0'
+gem 'aws-sdk', '~> 2.0'
 gem 'awesome_nested_set', '~> 3.0'
 gem 'validates_existence'
 gem "validate_url"
index 01e285a..139e05d 100644 (file)
@@ -89,7 +89,7 @@
       <h1>
         <%= t 'original_pictures.show.history' %>
       </h1>
-      <%= render 'history_list', :history => @item.history %>
+      <%= render 'history_list', :history => OriginalPicture.find_history(@item.id) %>
     </td>
   </tr>
 </table>
index e358681..6a5f031 100644 (file)
@@ -64,11 +64,12 @@ end
 y = YAML.load(open(Rails.root + 'config/picture_io.yml').read)
 require y[Rails.env]["adapter"]
 pio = PictureIO.const_get y[Rails.env]["io"]
+host_dir = y[Rails.env]["host_dir"]
 PictureIO.setup do |config|
-  config.original_picture_io = pio.new y[Rails.env]["original_picture"]
-  config.resource_picture_io = pio.new y[Rails.env]["resource_picture"]
-  config.picture_io = pio.new y[Rails.env]["picture"]
-  config.system_picture_io = pio.new y[Rails.env]["system_picture"]
+  config.original_picture_io = pio.new host_dir, y[Rails.env]["original_picture"]
+  config.resource_picture_io = pio.new host_dir, y[Rails.env]["resource_picture"]
+  config.picture_io = pio.new host_dir, y[Rails.env]["picture"]
+  config.system_picture_io = pio.new host_dir, y[Rails.env]["system_picture"]
 end
 module ActiveRecord
   class Forbidden < ActiveRecordError
diff --git a/config/initializers/aws.rb b/config/initializers/aws.rb
deleted file mode 100644 (file)
index bebe2ab..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#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
-#  )
-#)
-require 'aws/s3'
-AWS::S3::Base.establish_connection!(
-  :access_key_id => Rails.application.secrets.aws_access_key_id, 
-  :secret_access_key => Rails.application.secrets.aws_secret_access_key, 
-)
-#AWS::S3::DEFAULT_HOST = "us-east-1.amazonaws.com"
-# :s3_endpoint => "us-east-1.amazonaws.com"
index d17e7fe..85cd6bd 100644 (file)
@@ -1,23 +1,26 @@
 development:
   adapter: local_picture
   io: LocalPicture
-  original_picture: /pettanr/dev/o/
-  resource_picture: /pettanr/dev/r/
-  picture: /temp/p/p/
-  system_picture: /pettanr/dev/s/
+  host_dir: /pettanr/dev/
+  original_picture: o
+  resource_picture: r
+  picture: p
+  system_picture: s
 
 test:
   adapter: local_picture
   io: LocalPicture
-  original_picture: /pettanr/test/o/
-  resource_picture: /pettanr/test/r/
-  picture: /temp/p/tp/
-  system_picture: /pettanr/test/s/
+  host_dir: /pettanr/test/
+  original_picture: o
+  resource_picture: r
+  picture: p
+  system_picture: s
 
 production:
   adapter: s3_picture
   io: S3Picture
-  original_picture: pettan/o/
-  resource_picture: pettan/r/
-  picture: pettan/p/
-  system_picture: pettan/s/
+  host_dir: pettanr
+  original_picture: o
+  resource_picture: r
+  picture: p
+  system_picture: s
index 178071f..5e14769 100644 (file)
@@ -1,13 +1,24 @@
 development:\r
-  secret_key_base: xxxxxxxxxxxxxx\r
-  devise_secret: yyyyyyyyyyyyyyy\r
-  twitter_api_key: twitter-xxxxxxxxxxxxxx\r
-  twitter_api_secret: twitter-zzzzzzzzzzzz\r
-  aws_access_key_id: aws-aid-zzzzzz\r
-  aws_secret_access_key: aws-key-xxxxxx\r
+  secret_key_base: 0000000000000000\r
+  devise_secret: 111111111111111111\r
+  twitter_api_key: aaaaaaaaaaaaaaaaaaa\r
+  twitter_api_secret: vvvvvvvvvvvvvvvvvv\r
+  google_api_key: wwwwwwwwwwwwwwwwww\r
+  google_api_secret: xxxxxxxxxxxxxx\r
+  aws_access_key_id: yyyyyyyyyyyyyyyyy\r
+  aws_secret_access_key: zzzzzzzzzzzzzzzzz\r
+  aws_region: us-east-1\r
 \r
 test:\r
-  secret_key_base: xxxxxxxxxxxxxx\r
+  secret_key_base: qqqqqqqqqqqqqq\r
 \r
 production:\r
   secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>\r
+  devise_secret: <%= ENV["DEVISE_SECRET"] %>\r
+  twitter_api_key: <%= ENV["TWITTER_API_KEY"] %>\r
+  twitter_api_secret: <%= ENV["TWITTER_API_SECRET"] %>\r
+  google_api_key: <%= ENV["GOOGLE_API_KEY"] %>\r
+  google_api_secret: <%= ENV["GOOGLE_API_SECRET"] %>\r
+  aws_access_key_id: <%= ENV["AWS_ACCESS_KEY_ID"] %>\r
+  aws_secret_access_key: <%= ENV["AWS_SECRET_ACCESS_KEY"] %>\r
+  aws_region: <%= ENV["AWS_REGION"] %>\r
index bdaf976..6801527 100644 (file)
@@ -1,29 +1,38 @@
 require 'picture_io'
 class PictureIO
   class LocalPicture
-    def initialize base_dir = Rails.root + 'public/images/'
-      @base = base_dir
+    def initialize host_dir = Rails.root + 'public/images/', base_dir = ''
+      @host_dir = host_dir
+      @base_dir = @host_dir + base_dir
     end
     
-    def base
-      @base
+    def host_dir
+      @host_dir
     end
     
-    def base=(b)
-      @base = b
+    def host_dir=(d)
+      @host_dir = d
+    end
+    
+    def base_dir
+      @base_dir
+    end
+    
+    def base_dir=(d)
+      @base_dir = d
     end
     
     def dir(subdir = nil)
       sd = if subdir.to_s.empty?
-        self.base
+        ''
       else
-        self.base + (subdir.to_s + '/')
+        subdir.to_s + '/'
       end
-      sd
+      @base_dir + '/' + sd
     end
     
     def mkdir subdir = nil
-      Dir.mkdir(base) unless File.exist?(base)
+      Dir.mkdir(base_dir) unless File.exist?(base_dir)
       return if subdir.to_s.empty?
       Dir.mkdir(dir(subdir)) unless File.exist?(dir(subdir))
     end
index 394821a..1f78e62 100644 (file)
@@ -1,16 +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
-    def initialize base_dir = 'pettanr'
-      @base = base_dir
+    @@client = Aws::S3::Client.new
+    
+    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 self.client
+      @@client
+    end
+    
+    def bucket
+      @bucket
     end
     
-    def base
-      @base
+    def host_dir
+      @host_dir
     end
     
-    def base=(b)
-      @base = b
+    def host_dir=(d)
+      @host_dir = d
     end
     
     def self.subdirs
@@ -29,7 +49,7 @@ class PictureIO
     def exist?(filename, subdir = nil)
       res = true
       begin
-        res = AWS::S3::S3Object.exist?(dir(subdir) + filename, base)
+        res = self.bucket.object(dir(subdir) + filename).exists?
       rescue
         raise PictureIO::Error
       end
@@ -39,7 +59,7 @@ class PictureIO
     def put(bindata, filename, subdir = nil)
       res = true
       begin
-        AWS::S3::S3Object.store(dir(subdir) + filename, bindata, base)
+        @@client.put_object(bucket: self.host_dir, key: dir(subdir) + filename, body: bindata)
       rescue
         raise PictureIO::Error
       end
@@ -49,7 +69,7 @@ class PictureIO
     def get(filename, subdir = nil)
       bindata = ''
       begin
-        AWS::S3::S3Object.stream(dir(subdir) + filename, base) do |st|
+        @@client.get_object(bucket: self.host_dir, key: dir(subdir) + filename) do |st|
           bindata += st if st
         end
       rescue
@@ -61,7 +81,7 @@ class PictureIO
     def delete(filename, subdir = nil)
       res = true
       begin
-        AWS::S3::S3Object.delete(dir(subdir) + filename, base)
+        @@client.delete_object(bucket: self.host_dir, key: dir(subdir) + filename)
       rescue
         raise PictureIO::Error
       end