Class: Rubyprot::Storage

Inherits:
Object
  • Object
show all
Defined in:
lib/rubyprot/storage.rb

Overview

:nodoc:

Class Method Summary collapse

Class Method Details

.aws_download(location, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/rubyprot/storage.rb', line 6

def self.aws_download(location, name)
  raise "amazon_bucket_name attribute must be set" unless Rubyprot.amazon_bucket_name
  raise "amazon_secret_access_key attribute must be set" unless Rubyprot.amazon_secret_access_key
  raise "amazon_access_key_id attribute must be set" unless Rubyprot.amazon_access_key_id

    AWS::S3::Base.establish_connection!(
      :access_key_id     => Rubyprot.amazon_access_key_id,
      :secret_access_key => Rubyprot.amazon_secret_access_key
    )
  
    marshalled_data = AWS::S3::S3Object.find location + "/" + name, Rubyprot.amazon_bucket_name
    url = URI.parse(marshalled_data.url)
  
    agent = WWW::Mechanize.new
    marshalled_file = agent.get(url)
    marshalled_file.save_as(Rubyprot.dump_path + '/' + name)
    
    name
end

.aws_upload(location, name) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/rubyprot/storage.rb', line 26

def self.aws_upload(location, name)
  raise "amazon_bucket_name attribute must be set" unless Rubyprot.amazon_bucket_name
  raise "amazon_secret_access_key attribute must be set" unless Rubyprot.amazon_secret_access_key
  raise "amazon_access_key_id attribute must be set" unless Rubyprot.amazon_access_key_id

  AWS::S3::Base.establish_connection!(
    :access_key_id     => Rubyprot.amazon_access_key_id,
    :secret_access_key => Rubyprot.amazon_secret_access_key
  )
  
  file = File.open(Rubyprot.dump_path + "/" + name)
  
  AWS::S3::S3Object.store(location + "/" + name, 
                          file, 
                          Rubyprot.amazon_bucket_name,
                          :cache_control => "no-store, no-cache, must-revalidate, post-check=0, pre-check=0")
end