OSDN Git Service

destroy picture file with record t#27036
[pettanr/pettanr.git] / lib / s3_picture.rb
1 require 'picture_io'
2 require 'aws/s3'
3 class PictureIO
4   class S3Picture
5     def initialize base_dir = 'pettanr'
6       @base = base_dir
7     end
8     
9     def base
10       @base
11     end
12     
13     def base=(b)
14       @base = b
15     end
16     
17     def self.subdirs
18       ['', 'v', 'h', 'vh', 'thumbnail']
19     end
20     
21     def dir(subdir = nil)
22       sd = if subdir.to_s.empty?
23         ''
24       else
25         subdir.to_s + '/'
26       end
27       sd
28     end
29     
30     def exist?(filename, subdir = nil)
31       AWS::S3::S3Object.exist?(dir(subdir) + filename)
32     end
33     
34     def put(bindata, filename, subdir = nil)
35       AWS::S3::S3Object.store(dir(subdir) + filename, bindata, base)
36     end
37     
38     def get(filename, subdir = nil)
39       bindata = ''
40   #      if AWS::S3::S3Object.exists?(fn, 'pettanr')
41       AWS::S3::S3Object.stream(dir(subdir) + filename, base) do |st|
42         bindata += st if st
43       end
44       bindata
45     end
46     
47     def delete(filename, subdir = nil)
48       AWS::S3::S3Object.delete(dir(subdir) + filename, base)
49     end
50     
51   end
52 end