OSDN Git Service

Merge branch 'v03_test' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v03_test
[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       begin
32         AWS::S3::S3Object.exist?(dir(subdir) + filename)
33         true
34       rescue S3Exception
35         false
36       end
37     end
38     
39     def put(bindata, filename, subdir = nil)
40       begin
41         AWS::S3::S3Object.store(dir(subdir) + filename, bindata, base)
42         true
43       rescue S3Exception
44         false
45       end
46     end
47     
48     def get(filename, subdir = nil)
49       begin
50         bindata = ''
51     #      if AWS::S3::S3Object.exists?(fn, 'pettanr')
52         AWS::S3::S3Object.stream(dir(subdir) + filename, base) do |st|
53           bindata += st if st
54         end
55         bindata
56       rescue S3Exception
57         false
58       end
59     end
60     
61     def delete(filename, subdir = nil)
62       begin
63         AWS::S3::S3Object.delete(dir(subdir) + filename, base)
64 #        true
65       rescue S3Exception
66         false
67       end
68     end
69     
70   end
71 end