class C::Azure::Storage::Azure::File

Attributes

path[R]

Public Class Methods

new(uploader, connection, path) click to toggle source
# File lib/c/azure/storage/azure.rb, line 28
def initialize(uploader, connection, path)
  @uploader = uploader
  @connection = connection
  @path = path
end

Public Instance Methods

content_type() click to toggle source
# File lib/c/azure/storage/azure.rb, line 54
def content_type
  @content_type = blob.properties[:content_type] if @content_type.nil? && !blob.nil?
  @content_type
end
content_type=(new_content_type) click to toggle source
# File lib/c/azure/storage/azure.rb, line 59
def content_type=(new_content_type)
  @content_type = new_content_type
end
delete() click to toggle source
# File lib/c/azure/storage/azure.rb, line 79
def delete
  begin
    @connection.delete_blob @uploader.azure_container, @path
    true
  rescue ::Azure::Storage::Core::StorageError
    false
  end
end
exists?() click to toggle source
# File lib/c/azure/storage/azure.rb, line 63
def exists?
  blob.nil?
end
extension() click to toggle source
# File lib/c/azure/storage/azure.rb, line 75
def extension
  @path.split('.').last
end
filename() click to toggle source
# File lib/c/azure/storage/azure.rb, line 71
def filename
  URI.decode(url).gsub(/.*\/(.*?$)/, '\1')
end
read() click to toggle source
# File lib/c/azure/storage/azure.rb, line 50
def read
  content
end
size() click to toggle source
# File lib/c/azure/storage/azure.rb, line 67
def size
  blob.properties[:content_length] unless blob.nil?
end
store!(file) click to toggle source
# File lib/c/azure/storage/azure.rb, line 34
def store!(file)
  @content = file.read
  @content_type = file.content_type
  @connection.create_block_blob @uploader.azure_container, @path, @content, content_type: @content_type
  true
end
url(options = {}) click to toggle source
# File lib/c/azure/storage/azure.rb, line 41
def url(options = {})
  path = ::File.join @uploader.azure_container, @path
  if @uploader.asset_host
    "#{@uploader.asset_host}/#{path}"
  else
    @connection.generate_uri(path).to_s
  end
end

Private Instance Methods

blob() click to toggle source
# File lib/c/azure/storage/azure.rb, line 90
def blob
  load_content if @blob.nil?
  @blob
end
content() click to toggle source
# File lib/c/azure/storage/azure.rb, line 95
def content
  load_content if @content.nil?
  @content
end
load_content() click to toggle source
# File lib/c/azure/storage/azure.rb, line 100
def load_content
  @blob, @content = begin
                      @connection.get_blob @uploader.azure_container, @path
                    rescue ::Azure::Storage::Core::StorageError
                    end
end