Class: HeyDan::Cdn

Inherits:
Object
  • Object
show all
Defined in:
lib/heydan/cdn.rb

Class Method Summary collapse

Class Method Details

.upload(names = []) ⇒ Object

Upload files from the Downloads folder



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/heydan/cdn.rb', line 4

def self.upload(names=[])
  require 'fog/aws'
  @connection = Fog::Storage.new({
    provider: 'AWS',
    region: HeyDan.aws_region,
    aws_access_key_id: HeyDan.aws_access_id,
    aws_secret_access_key: HeyDan.aws_secret_key
  })
  @directory = @connection.directories.get(HeyDan.aws_bucket)
  if names.size == 0
    files = Dir.glob("#{HeyDan.folders[:datasets]}/*.csv")
  else
    files = names.map { |f| File.join(HeyDan.folders[:datasets], "#{f}.csv")}
  end
  files.each do |f|
    name = f.gsub("#{HeyDan.folders[:datasets]}/", '')
    puts "uploading #{name}"
    file = @directory.files.new({
      :key    => name,
      :body   => File.open(f, 'r'),
      :public => true
    })
    file.save
  end    
end