OSDN Git Service
(root)
/
pettanr
/
pettanr.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix: fetch fail
[pettanr/pettanr.git]
/
lib
/
s3_picture.rb
diff --git
a/lib/s3_picture.rb
b/lib/s3_picture.rb
index
c4c8a76
..
0b06157
100644
(file)
--- a/
lib/s3_picture.rb
+++ b/
lib/s3_picture.rb
@@
-1,17
+1,36
@@
require 'picture_io'
require 'picture_io'
-require 'aws/s3'
class PictureIO
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
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
end
- def b
ase
- @b
ase
+ def b
ucket
+ @b
ucket
end
end
- def base=(b)
- @base = b
+ def host_dir
+ @host_dir
+ end
+
+ def host_dir=(d)
+ @host_dir = d
end
def self.subdirs
end
def self.subdirs
@@
-24,48
+43,50
@@
class PictureIO
else
subdir.to_s + '/'
end
else
subdir.to_s + '/'
end
- sd
+
@base_dir + '/' +
sd
end
def exist?(filename, subdir = nil)
end
def exist?(filename, subdir = nil)
+ res = true
begin
begin
- AWS::S3::S3Object.exist?(dir(subdir) + filename)
- true
- rescue S3Exception
- false
+ res = self.bucket.object(dir(subdir) + filename).exists?
+ rescue
+ raise PictureIO::Error
end
end
+ res
end
def put(bindata, filename, subdir = nil)
end
def put(bindata, filename, subdir = nil)
+ res = true
begin
begin
- AWS::S3::S3Object.store(dir(subdir) + filename, bindata, base)
- true
- rescue S3Exception
- false
+ @@client.put_object(bucket: self.host_dir, key: dir(subdir) + filename, body: bindata)
+ rescue
+ raise PictureIO::Error
end
end
+ res
end
def get(filename, subdir = nil)
end
def get(filename, subdir = nil)
+ bindata = ''
begin
begin
- bindata = ''
- # if AWS::S3::S3Object.exists?(fn, 'pettanr')
- 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
bindata += st if st
end
- bindata
- rescue S3Exception
- false
+ rescue
+ raise PictureIO::Error
end
end
+ bindata
end
def delete(filename, subdir = nil)
end
def delete(filename, subdir = nil)
+ res = true
begin
begin
- AWS::S3::S3Object.delete(dir(subdir) + filename, base)
-# true
- rescue S3Exception
- false
+ @@client.delete_object(bucket: self.host_dir, key: dir(subdir) + filename)
+ rescue
+ raise PictureIO::Error
end
end
- end
+ res
+ end
end
end
end
end