Class: RedmineS3::Connection

Inherits:
Object
  • Object
show all
Defined in:
lib/redmine_s3/connection.rb

Constant Summary collapse

@@access_key_id =
nil
@@secret_acces_key =
nil
@@bucket =
nil
@@uri =
nil
@@conn =
nil

Class Method Summary collapse

Class Method Details

.bucketObject



32
33
34
35
# File 'lib/redmine_s3/connection.rb', line 32

def self.bucket
  load_options unless @@bucket
  @@bucket
end

.connObject



28
29
30
# File 'lib/redmine_s3/connection.rb', line 28

def self.conn
  @@conn || establish_connection
end

.create_bucketObject



42
43
44
# File 'lib/redmine_s3/connection.rb', line 42

def self.create_bucket
  conn.create_bucket(bucket).http_response.message
end

.delete(filename) ⇒ Object



56
57
58
# File 'lib/redmine_s3/connection.rb', line 56

def self.delete(filename)
  conn.delete(bucket, filename)
end

.establish_connectionObject



23
24
25
26
# File 'lib/redmine_s3/connection.rb', line 23

def self.establish_connection
  load_options unless @@access_key_id && @@secret_acces_key
  @@conn = S3::AWSAuthConnection.new(@@access_key_id, @@secret_acces_key, false)
end

.load_optionsObject



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/redmine_s3/connection.rb', line 10

def self.load_options
  options = YAML::load( File.open(File.join(Rails.root, 'config', 's3.yml')) )
  @@access_key_id     = options[Rails.env]['access_key_id']
  @@secret_acces_key  = options[Rails.env]['secret_access_key']
  @@bucket            = options[Rails.env]['bucket']

  if options[Rails.env]['cname_bucket'] == true
    @@uri = "http://#{@@bucket}"
  else
    @@uri = "http://s3.amazonaws.com/#{@@bucket}"
  end
end

.publicly_readable!(filename) ⇒ Object



50
51
52
53
54
# File 'lib/redmine_s3/connection.rb', line 50

def self.publicly_readable!(filename)
  acl_xml = conn.get_acl(bucket, filename).object.data
  updated_acl = S3Helper.set_acl_public_read(acl_xml)
  conn.put_acl(bucket, filename, updated_acl).http_response.message
end

.put(filename, data) ⇒ Object



46
47
48
# File 'lib/redmine_s3/connection.rb', line 46

def self.put(filename, data)
  conn.put(bucket, filename, data)
end

.uriObject



37
38
39
40
# File 'lib/redmine_s3/connection.rb', line 37

def self.uri
  load_options unless @@uri
  @@uri
end