Class: Fog::AWS::Storage::Files
- Inherits:
-
Collection
- Object
- Collection
- Fog::AWS::Storage::Files
- Extended by:
- Deprecation
- Defined in:
- lib/fog/aws/models/storage/files.rb
Constant Summary collapse
- DASHED_HEADERS =
%w( Cache-Control Content-Disposition Content-Encoding Content-Length Content-MD5 Content-Type ).freeze
Instance Method Summary collapse
- #all(options = {}) ⇒ Object
- #each ⇒ Object
- #each_file_this_page ⇒ Object
- #get(key, options = {}, &block) ⇒ Object
- #get_http_url(key, expires, options = {}) ⇒ Object
- #get_https_url(key, expires, options = {}) ⇒ Object
- #get_url(key, expires, options = {}) ⇒ Object
- #head(key, options = {}) ⇒ Object
- #head_url(key, expires, options = {}) ⇒ Object
- #new(attributes = {}) ⇒ Object
- #normalize_headers(data) ⇒ Object
Instance Method Details
#all(options = {}) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/fog/aws/models/storage/files.rb', line 29 def all( = {}) requires :directory = { 'delimiter' => delimiter, 'marker' => marker, 'max-keys' => max_keys, 'prefix' => prefix }.merge!() = .reject {|key,value| value.nil? || value.to_s.empty?} merge_attributes() parent = directory.collection.get( directory.key, ) if parent merge_attributes(parent.files.attributes) load(parent.files.map {|file| file.attributes}) else nil end end |
#each ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# 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 |
#each_file_this_page ⇒ Object
51 |
# File 'lib/fog/aws/models/storage/files.rb', line 51 alias_method :each_file_this_page, :each |
#get(key, options = {}, &block) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/fog/aws/models/storage/files.rb', line 68 def get(key, = {}, &block) requires :directory data = service.get_object(directory.key, key, , &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 = {}) ⇒ Object
93 94 95 96 |
# File 'lib/fog/aws/models/storage/files.rb', line 93 def get_http_url(key, expires, = {}) requires :directory service.get_object_http_url(directory.key, key, expires, ) end |
#get_https_url(key, expires, options = {}) ⇒ Object
98 99 100 101 |
# File 'lib/fog/aws/models/storage/files.rb', line 98 def get_https_url(key, expires, = {}) requires :directory service.get_object_https_url(directory.key, key, expires, ) end |
#get_url(key, expires, options = {}) ⇒ Object
88 89 90 91 |
# File 'lib/fog/aws/models/storage/files.rb', line 88 def get_url(key, expires, = {}) requires :directory service.get_object_url(directory.key, key, expires, ) end |
#head(key, options = {}) ⇒ Object
108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/fog/aws/models/storage/files.rb', line 108 def head(key, = {}) requires :directory data = service.head_object(directory.key, key, ) normalize_headers(data) file_data = data.headers.merge({ :key => key }) new(file_data) rescue Excon::Errors::NotFound nil end |
#head_url(key, expires, options = {}) ⇒ Object
103 104 105 106 |
# File 'lib/fog/aws/models/storage/files.rb', line 103 def head_url(key, expires, = {}) requires :directory service.head_object_url(directory.key, key, expires, ) end |
#new(attributes = {}) ⇒ Object
120 121 122 123 |
# File 'lib/fog/aws/models/storage/files.rb', line 120 def new(attributes = {}) requires :directory super({ :directory => directory }.merge!(attributes)) end |
#normalize_headers(data) ⇒ Object
125 126 127 128 129 130 131 132 133 134 135 136 |
# 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')) if (etag = fetch_and_delete_header(data, 'ETag')) data.headers['ETag'] = etag.gsub('"', '') end DASHED_HEADERS.each do |header| value = fetch_and_delete_header(data, header) data.headers[header] = value if value end end |