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

Parameters:

  • options (Hash) (defaults to: {})

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.

Returns:



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

Parameters:

  • key (String)

    Name of file

  • options (Hash) (defaults to: {})

Options Hash (options):

  • block_size (String)

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

Returns:



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

Parameters:

  • key (String)

    Name of file

  • expires (Time)

    The time at which the shared access signature becomes invalid, in a UTC format.

  • options (Hash)

    Unused. To keep same interface as other providers.

Returns:

  • (String)

    A http URL.



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

Parameters:

  • key (String)

    Name of file

  • expires (Time)

    The time at which the shared access signature becomes invalid, in a UTC format.

  • options (Hash)

    Unused. To keep same interface as other providers.

Returns:

  • (String)

    A https URL.



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

Parameters:

  • key (String)

    Name of file

  • expires (Time)

    The time at which the shared access signature becomes invalid, in a UTC format.

  • options (Hash) (defaults to: {})

Options Hash (options):

  • scheme (String)

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

Returns:

  • (String)

    A URL.



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

Parameters:

  • key (String)

    Name of file

  • options (Hash) (defaults to: {})

Returns:



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

Returns:



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