Class: Fog::Storage::AzureRM::Files

Inherits:
Collection
  • Object
show all
Defined in:
lib/fog/azurerm/models/storage/files.rb

Overview

This class is giving implementation of listing blobs.

Instance Method Summary collapse

Instance Method Details

#all(options = {}) ⇒ Fog::Storage::AzureRM::Files

List all files(blobs) under the directory.

required attributes: directory

Options Hash (options):

  • max_keys (String)

    or max_results Sets the maximum number of files to return.

  • delimiter (String)

    Sets to cause that the operation returns a BlobPrefix element in the response body that acts as a placeholder for all files whose names begin with the same substring up to the appearance of the delimiter character. The delimiter may be a single character or a string.

  • marker (String)

    Sets the identifier that specifies the portion of the list to be returned.

  • prefix (String)

    Sets filters the results to return only files whose name begins with the specified prefix.



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/fog/azurerm/models/storage/files.rb', line 30

def all(options = {})
  requires :directory

  options = {
    max_results: max_results,
    delimiter: delimiter,
    marker: marker,
    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
  )
  return nil unless parent

  merge_attributes(parent.files.attributes)
  load(parent.files.map(&:attributes))
end

#eachObject



56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/fog/azurerm/models/storage/files.rb', line 56

def each
  if block_given?
    subset = dup.all

    subset.each_file_this_page { |f| yield f }
    while subset.next_marker
      subset = subset.all(marker: subset.next_marker)
      subset.each_file_this_page { |f| yield f }
    end
  end

  self
end

#each_file_this_pageFog::Storage::AzureRM::Files

Enumerate every file under the directory if block_given?



55
# File 'lib/fog/azurerm/models/storage/files.rb', line 55

alias each_file_this_page each

#get(key, options = {}, &block) ⇒ Fog::Storage::AzureRM::File

Get the file(blob) with full content as :body with the given name.

required attributes: directory

Options Hash (options):

  • block_size (String)

    Sets buffer size when block_given? is true. Default is 32 MB



80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/fog/azurerm/models/storage/files.rb', line 80

def get(key, options = {}, &block)
  requires :directory

  blob, content = service.get_blob(directory.key, key, options, &block)
  data = parse_storage_object(blob)
  file_data = data.merge(
    body: content,
    key: key
  )
  new(file_data)
rescue => error
  return nil if error.message == 'NotFound'
  raise error
end

#get_http_url(key, expires, _options = {}) ⇒ String

Get the http URL of the file(blob) with the given name.

required attributes: directory


126
127
128
129
130
# File 'lib/fog/azurerm/models/storage/files.rb', line 126

def get_http_url(key, expires, _options = {})
  requires :directory

  service.get_blob_http_url(directory.key, key, expires)
end

#get_https_url(key, expires, _options = {}) ⇒ String

Get the https URL of the file(blob) with the given name.

required attributes: directory


142
143
144
145
146
# File 'lib/fog/azurerm/models/storage/files.rb', line 142

def get_https_url(key, expires, _options = {})
  requires :directory

  service.get_blob_https_url(directory.key, key, expires)
end

#get_url(key, expires, options = {}) ⇒ String

Get the URL of the file(blob) with the given name.

required attributes: directory

Options Hash (options):

  • scheme (String)

    Sets which URL to get, http or https. Options: https or http. Default is https.



106
107
108
109
110
111
112
113
114
# File 'lib/fog/azurerm/models/storage/files.rb', line 106

def get_url(key, expires, options = {})
  requires :directory

  if options[:scheme] == 'http'
    get_http_url(key, expires, options)
  else
    get_https_url(key, expires, options)
  end
end

#head(key, options = {}) ⇒ Fog::Storage::AzureRM::File

Get the file(blob) without content with the given name.

required attributes: directory


157
158
159
160
161
162
163
164
165
166
167
# File 'lib/fog/azurerm/models/storage/files.rb', line 157

def head(key, options = {})
  requires :directory

  blob = service.get_blob_properties(directory.key, key, options)
  data = parse_storage_object(blob)
  file_data = data.merge(key: key)
  new(file_data)
rescue => error
  return nil if error.message == 'NotFound'
  raise error
end

#new(attributes = {}) ⇒ Fog::Storage::AzureRM::File

Create a new file.

required attributes: directory


175
176
177
178
179
# File 'lib/fog/azurerm/models/storage/files.rb', line 175

def new(attributes = {})
  requires :directory

  super({ directory: directory }.merge!(attributes))
end