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

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

Overview

This class is giving implementation of listing containers.

Instance Method Summary collapse

Methods included from Utilities::General

#authority_url, #get_blob_endpoint, #get_blob_endpoint_with_domain, #get_circuit_name_from_id, #get_end_point_type, #get_hash_from_object, #get_image_name, #get_record_set_from_id, #get_record_type, #get_resource_from_resource_id, #get_resource_group_from_id, #get_subscription_id, #get_traffic_manager_profile_name_from_endpoint_id, #get_type_from_recordset_type, #get_virtual_machine_from_id, #get_virtual_network_from_id, #parse_storage_object, #raise_azure_exception, #random_string, #remove_trailing_periods_from_path_segments, #storage_endpoint_suffix, #storage_resource, #validate_params

Instance Method Details

#allFog::AzureRM::Storage::Directories

List all directories(containers) in the storage account.



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

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



71
72
73
# File 'lib/fog/azurerm/models/storage/directories.rb', line 71

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

#delete_temporary_container(storage_account_name, access_key, container_name) ⇒ Object



66
67
68
69
# File 'lib/fog/azurerm/models/storage/directories.rb', line 66

def delete_temporary_container(, access_key, container_name)
  storage_data = Fog::AzureRM::Storage.new(azure_storage_account_name: , azure_storage_access_key: access_key)
  storage_data.delete_container(container_name)
end

#get(identity, options = {}) ⇒ Fog::AzureRM::Storage::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:



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

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 Exception => error
  return nil if error.message == 'NotFound'
  raise error
end