Method: Fog::Storage::Local::Files#get

Defined in:
lib/fog/local/models/storage/files.rb

#get(key, &block) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/fog/local/models/storage/files.rb', line 34

def get(key, &block)
  requires :directory
  path = file_path(key)
  if ::File.exist?(path)
    data = {
      :content_length => ::File.size(path),
      :key            => key,
      :last_modified  => ::File.mtime(path)
    }
    if block_given?
      file = ::File.open(path)
      while (chunk = file.read(Excon::CHUNK_SIZE)) && yield(chunk); end
      file.close
      new(data)
    else
      body = ::File.read(path)
      new(data.merge!(:body => body))
    end
  else
    nil
  end
end