class Fog::AWS::Storage::Files
Constants
- DASHED_HEADERS
Public Instance Methods
all(options = {})
click to toggle source
# File lib/fog/aws/models/storage/files.rb, line 29 def all(options = {}) requires :directory options = { 'delimiter' => delimiter, 'marker' => marker, 'max-keys' => max_keys, 'prefix' => prefix }.merge!(options) options = options.reject {|key,value| value.nil? || value.to_s.empty?} merge_attributes(options) parent = directory.collection.get( directory.key, options ) if parent merge_attributes(parent.files.attributes) load(parent.files.map {|file| file.attributes}) else nil end end
each() { |f| ... }
click to toggle source
# File lib/fog/aws/models/storage/files.rb, line 52 def each if !block_given? self else subset = dup.all subset.each_file_this_page {|f| yield f} while subset.is_truncated 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, options = {}, &block)
click to toggle source
# File lib/fog/aws/models/storage/files.rb, line 68 def get(key, options = {}, &block) requires :directory data = service.get_object(directory.key, key, options, &block) normalize_headers(data) file_data = data.headers.merge({ :body => data.body, :key => key }) new(file_data) rescue Excon::Errors::NotFound => error case error.response.body when /<Code>NoSuchKey<\/Code>/ nil when /<Code>NoSuchBucket<\/Code>/ raise(Fog::AWS::Storage::NotFound.new("Directory #{directory.identity} does not exist.")) else raise(error) end end
get_http_url(key, expires, options = {})
click to toggle source
# File lib/fog/aws/models/storage/files.rb, line 93 def get_http_url(key, expires, options = {}) requires :directory service.get_object_http_url(directory.key, key, expires, options) end
get_https_url(key, expires, options = {})
click to toggle source
# File lib/fog/aws/models/storage/files.rb, line 98 def get_https_url(key, expires, options = {}) requires :directory service.get_object_https_url(directory.key, key, expires, options) end
get_url(key, expires, options = {})
click to toggle source
# File lib/fog/aws/models/storage/files.rb, line 88 def get_url(key, expires, options = {}) requires :directory service.get_object_url(directory.key, key, expires, options) end
head(key, options = {})
click to toggle source
# File lib/fog/aws/models/storage/files.rb, line 108 def head(key, options = {}) requires :directory data = service.head_object(directory.key, key, options) normalize_headers(data) file_data = data.headers.merge({ :key => key }) new(file_data) rescue Excon::Errors::NotFound nil end
head_url(key, expires, options = {})
click to toggle source
# File lib/fog/aws/models/storage/files.rb, line 103 def head_url(key, expires, options = {}) requires :directory service.head_object_url(directory.key, key, expires, options) end
new(attributes = {})
click to toggle source
Calls superclass method
# File lib/fog/aws/models/storage/files.rb, line 120 def new(attributes = {}) requires :directory super({ :directory => directory }.merge!(attributes)) end
normalize_headers(data)
click to toggle source
# File lib/fog/aws/models/storage/files.rb, line 125 def normalize_headers(data) data.headers['Last-Modified'] = Time.parse(fetch_and_delete_header(data, 'Last-Modified')) etag = fetch_and_delete_header(data, 'ETag').gsub('"','') data.headers['ETag'] = etag DASHED_HEADERS.each do |header| value = fetch_and_delete_header(data, header) data.headers[header] = value if value end end
Private Instance Methods
fetch_and_delete_header(response, header)
click to toggle source
# File lib/fog/aws/models/storage/files.rb, line 139 def fetch_and_delete_header(response, header) value = response.get_header(header) return unless value response.headers.keys.each do |key| response.headers.delete(key) if key.downcase == header.downcase end value end