Class: Fog::Storage::AzureRM::Directories

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

Overview

This class is giving implementation of listing containers.

Instance Method Summary collapse

Instance Method Details

#allFog::Storage::AzureRM::Directories

List all directories(containers) in the storage account.



12
13
14
15
16
17
18
19
20
21
# File 'lib/fog/azurerm/models/storage/directories.rb', line 12

def all
  containers = service.list_containers
  data = []
  containers.each do |container|
    c = parse_storage_object(container)
    c[:acl] = 'unknown'
    data << c
  end
  load(data)
end

#check_container_exists(name) ⇒ Object



64
65
66
# File 'lib/fog/azurerm/models/storage/directories.rb', line 64

def check_container_exists(name)
  service.check_container_exists(name)
end

#get(identity, options = {}) ⇒ Fog::Storage::AzureRM::Directory

Get a directory with files(blobs) under this directory. You can set max_keys to 1 if you do not want to return all files under this directory.

Parameters:

  • identity (String)

    Name of directory

  • 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:



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/fog/azurerm/models/storage/directories.rb', line 38

def get(identity, options = {})
  remap_attributes(options, max_keys: :max_results)

  container = service.get_container_properties(identity)
  data = parse_storage_object(container)
  data[:acl] = 'unknown'

  directory = new(key: identity, is_persisted: true)
  directory.merge_attributes(data)

  data = service.list_blobs(identity, options)

  new_options = options.merge(next_marker: data[:next_marker])
  directory.files.merge_attributes(new_options)

  blobs = []
  data[:blobs].each do |blob|
    blobs << parse_storage_object(blob)
  end
  directory.files.load(blobs)
  directory
rescue => error
  return nil if error.message == 'NotFound'
  raise error
end