class Fog::Storage::Dtdream::Files
Public Instance Methods
all(options = {})
click to toggle source
# File lib/fog/dtdream/models/storage/files.rb, line 16 def all(options = {}) requires :directory if directory.key != "" && directory.key != "." && directory.key != nil prefix = directory.key+"/" end files = service.list_objects({:prefix => prefix})["Contents"] if nil == files return end data = Array.new i = 0 files.each do |file| if file["Key"][0][-1] != "/" content_length = file["Size"][0].to_i key = file["Key"][0] lastModified = file["LastModified"][0] if lastModified != nil && lastModified != "" last_modified = (Time.parse(lastModified)).localtime else last_modified = nil end data[i] = {:content_length => content_length, :key => key, :last_modified => last_modified, :etag => file["ETag"][0]} i = i + 1 end end load(data) end
each() { |f| ... }
click to toggle source
# File lib/fog/dtdream/models/storage/files.rb, line 50 def each if !block_given? self else subset = dup.all subset.each_file_this_page {|f| yield f} while subset.length == (subset.limit || 10000) subset = subset.all(:marker => subset.last.key) subset.each_file_this_page {|f| yield f} end self end end
Also aliased as: each_file_this_page
get(key) { |chunk| ... }
click to toggle source
# File lib/fog/dtdream/models/storage/files.rb, line 66 def get(key, &block) requires :directory if directory.key == "" object = key else object = directory.key+"/"+key end data = service.head_object(object).data contentLen = data[:headers]["Content-Length"].to_i if data[:status] != 200 return nil end lastModified = data[:headers]["Last-Modified"] if lastModified != nil && lastModified != "" last_modified = (Time.parse(lastModified)).localtime else last_modified = nil end file_data = { :content_length => contentLen, :key => key, :last_modified => last_modified, :content_type => data[:headers]["Content-Type"], :etag => data[:headers]["ETag"] } if block_given? pagesNum = (contentLen + Excon::CHUNK_SIZE - 1)/Excon::CHUNK_SIZE for i in 1..pagesNum _start = (i-1)*(Excon::CHUNK_SIZE) _end = i*(Excon::CHUNK_SIZE) - 1 range = "#{_start}-#{_end}" chunk = service.get_object(object, range)[:body] yield(chunk) end new(file_data) else data = service.get_object(object) file_data.merge!(:body => data[:body]) new(file_data) end end
get_http_url(key, expires, options = {})
click to toggle source
# File lib/fog/dtdream/models/storage/files.rb, line 124 def get_http_url(key, expires, options = {}) requires :directory if directory.key == "" object = key else object = directory.key+"/"+key end service.get_object_http_url_public(object, expires, options) end
get_https_url(key, expires, options = {})
click to toggle source
# File lib/fog/dtdream/models/storage/files.rb, line 134 def get_https_url(key, expires, options = {}) requires :directory if directory.key == "" object = key else object = directory.key+"/"+key end service.get_object_https_url_public(object, expires, options) end
get_url(key)
click to toggle source
# File lib/fog/dtdream/models/storage/files.rb, line 114 def get_url(key) requires :directory if directory.key == "" object = key else object = directory.key+"/"+key end service.get_object_http_url_public(object, 3600) end
head(key, options = {})
click to toggle source
# File lib/fog/dtdream/models/storage/files.rb, line 144 def head(key, options = {}) requires :directory if directory.key == "" object = key else object = directory.key+"/"+key end data = service.head_object(object).data lastModified = data[:headers]["Last-Modified"] if lastModified != nil && lastModified != "" last_modified = (Time.parse(lastModified)).localtime else last_modified = nil end file_data = { :content_length => data[:headers]["Content-Length"].to_i, :key => key, :last_modified => last_modified, :content_type => data[:headers]["Content-Type"], :etag => data[:headers]["ETag"] } new(file_data) rescue Fog::Storage::Dtdream::NotFound nil end
new(attributes = {})
click to toggle source
Calls superclass method
# File lib/fog/dtdream/models/storage/files.rb, line 171 def new(attributes = {}) requires :directory super({ :directory => directory }.merge!(attributes)) end