lib/fog/azurerm/models/storage/files.rb in fog-azure-rm-0.1.1 vs lib/fog/azurerm/models/storage/files.rb in fog-azure-rm-0.1.2

- old
+ new

@@ -1,183 +1,183 @@ -module Fog - module Storage - class AzureRM - # This class is giving implementation of listing blobs. - class Files < Fog::Collection - attribute :directory - attribute :delimiter, aliases: 'Delimiter' - attribute :marker, aliases: 'Marker' - attribute :max_results, aliases: %w(max-results MaxResults max_keys MaxKeys max-keys) - attribute :next_marker, aliases: %w(NextMarker next-marker) - attribute :prefix, aliases: 'Prefix' - - model Fog::Storage::AzureRM::File - - # List all files(blobs) under the directory. - # - # required attributes: directory - # - # @param options [Hash] - # @option options [String] max_keys or - # max_results Sets the maximum number of files to return. - # @option options [String] delimiter 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. - # @option options [String] marker Sets the identifier that specifies the portion of the list to be returned. - # @option options [String] prefix Sets filters the results to return only files whose name begins with the specified prefix. - # - # @return [Fog::Storage::AzureRM::Files] Return nil if the directory does not exist. - # - 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 - - # Enumerate every file under the directory if block_given? - # - # @return [Fog::Storage::AzureRM::Files] - # - alias each_file_this_page each - 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 - - # Get the file(blob) with full content as :body with the given name. - # - # required attributes: directory - # - # @param key [String] Name of file - # @param options [Hash] - # @option options [String] block_size Sets buffer size when block_given? is true. Default is 32 MB - # - # @return [Fog::Storage::AzureRM::File] A file. Return nil if the file does not exist. - # - 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 the URL of the file(blob) with the given name. - # - # required attributes: directory - # - # @param key [String] Name of file - # @param expires [Time] The time at which the shared access signature becomes invalid, in a UTC format. - # @param options [Hash] - # @option options [String] scheme Sets which URL to get, http or https. Options: https or http. Default is https. - # - # @return [String] A URL. - # - 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 - - # Get the http URL of the file(blob) with the given name. - # - # required attributes: directory - # - # @param key [String] Name of file - # @param expires [Time] The time at which the shared access signature becomes invalid, in a UTC format. - # @param options [Hash] Unused. To keep same interface as other providers. - # - # @return [String] A http URL. - # - def get_http_url(key, expires, _options = {}) - requires :directory - - service.get_blob_http_url(directory.key, key, expires) - end - - # Get the https URL of the file(blob) with the given name. - # - # required attributes: directory - # - # @param key [String] Name of file - # @param expires [Time] The time at which the shared access signature becomes invalid, in a UTC format. - # @param options [Hash] Unused. To keep same interface as other providers. - # - # @return [String] A https URL. - # - def get_https_url(key, expires, _options = {}) - requires :directory - - service.get_blob_https_url(directory.key, key, expires) - end - - # Get the file(blob) without content with the given name. - # - # required attributes: directory - # - # @param key [String] Name of file - # @param options [Hash] - # - # @return [Fog::Storage::AzureRM::File] A file. Return nil if the file does not exist. - # - 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 - - # Create a new file. - # - # required attributes: directory - # - # @return [Fog::Storage::AzureRM::File] A file. You need to use File.save to upload this new file. - # - def new(attributes = {}) - requires :directory - - super({ directory: directory }.merge!(attributes)) - end - end - end - end -end +module Fog + module Storage + class AzureRM + # This class is giving implementation of listing blobs. + class Files < Fog::Collection + attribute :directory + attribute :delimiter, aliases: 'Delimiter' + attribute :marker, aliases: 'Marker' + attribute :max_results, aliases: %w(max-results MaxResults max_keys MaxKeys max-keys) + attribute :next_marker, aliases: %w(NextMarker next-marker) + attribute :prefix, aliases: 'Prefix' + + model Fog::Storage::AzureRM::File + + # List all files(blobs) under the directory. + # + # required attributes: directory + # + # @param options [Hash] + # @option options [String] max_keys or + # max_results Sets the maximum number of files to return. + # @option options [String] delimiter 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. + # @option options [String] marker Sets the identifier that specifies the portion of the list to be returned. + # @option options [String] prefix Sets filters the results to return only files whose name begins with the specified prefix. + # + # @return [Fog::Storage::AzureRM::Files] Return nil if the directory does not exist. + # + 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 + + # Enumerate every file under the directory if block_given? + # + # @return [Fog::Storage::AzureRM::Files] + # + alias each_file_this_page each + 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 + + # Get the file(blob) with full content as :body with the given name. + # + # required attributes: directory + # + # @param key [String] Name of file + # @param options [Hash] + # @option options [String] block_size Sets buffer size when block_given? is true. Default is 32 MB + # + # @return [Fog::Storage::AzureRM::File] A file. Return nil if the file does not exist. + # + 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 the URL of the file(blob) with the given name. + # + # required attributes: directory + # + # @param key [String] Name of file + # @param expires [Time] The time at which the shared access signature becomes invalid, in a UTC format. + # @param options [Hash] + # @option options [String] scheme Sets which URL to get, http or https. Options: https or http. Default is https. + # + # @return [String] A URL. + # + 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 + + # Get the http URL of the file(blob) with the given name. + # + # required attributes: directory + # + # @param key [String] Name of file + # @param expires [Time] The time at which the shared access signature becomes invalid, in a UTC format. + # @param options [Hash] Unused. To keep same interface as other providers. + # + # @return [String] A http URL. + # + def get_http_url(key, expires, _options = {}) + requires :directory + + service.get_blob_http_url(directory.key, key, expires) + end + + # Get the https URL of the file(blob) with the given name. + # + # required attributes: directory + # + # @param key [String] Name of file + # @param expires [Time] The time at which the shared access signature becomes invalid, in a UTC format. + # @param options [Hash] Unused. To keep same interface as other providers. + # + # @return [String] A https URL. + # + def get_https_url(key, expires, _options = {}) + requires :directory + + service.get_blob_https_url(directory.key, key, expires) + end + + # Get the file(blob) without content with the given name. + # + # required attributes: directory + # + # @param key [String] Name of file + # @param options [Hash] + # + # @return [Fog::Storage::AzureRM::File] A file. Return nil if the file does not exist. + # + 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 + + # Create a new file. + # + # required attributes: directory + # + # @return [Fog::Storage::AzureRM::File] A file. You need to use File.save to upload this new file. + # + def new(attributes = {}) + requires :directory + + super({ directory: directory }.merge!(attributes)) + end + end + end + end +end