Module: Fog::CDN::Rackspace::Base

Included in:
Mock, Real
Defined in:
lib/fog/rackspace/cdn.rb

Constant Summary collapse

URI_HEADERS =
{ 
  "X-Cdn-Ios-Uri" => :ios_uri,
  "X-Cdn-Uri" => :uri,
  "X-Cdn-Streaming-Uri" => :streaming_uri, 
  "X-Cdn-Ssl-Uri" => :ssl_uri
}.freeze

Instance Method Summary collapse

Instance Method Details

#endpoint_uri(service_endpoint_url = nil) ⇒ Object



34
35
36
# File 'lib/fog/rackspace/cdn.rb', line 34

def endpoint_uri(service_endpoint_url=nil)
  @uri = super(@rackspace_cdn_url || service_endpoint_url, :rackspace_cdn_url)
end

#publish_container(container, publish = true) ⇒ Hash

Publish container to CDN

Parameters:

  • container (Fog::Storage::Rackspace::Directory)

    directory to publish

  • publish (Boolean) (defaults to: true)

    If true directory is published. If false directory is unpublished.

Returns:

  • (Hash)

    hash containing urls for published container

Raises:



46
47
48
49
50
51
# File 'lib/fog/rackspace/cdn.rb', line 46

def publish_container(container, publish = true)
  enabled = publish ? 'True' : 'False'
  response = put_container(container.key, 'X-Cdn-Enabled' => enabled)
  return {} unless publish
  urls_from_headers(response.headers)
end

#regionObject



30
31
32
# File 'lib/fog/rackspace/cdn.rb', line 30

def region
  @rackspace_region
end

#service_nameObject



26
27
28
# File 'lib/fog/rackspace/cdn.rb', line 26

def service_name
  :cloudFilesCDN
end

#urls(container) ⇒ Hash

Note:

If unable to find container or container is not published this method will return an empty hash.

Returns hash of urls for container

Parameters:

Returns:

  • (Hash)

    hash containing urls for published container

Raises:



60
61
62
63
64
65
66
67
68
# File 'lib/fog/rackspace/cdn.rb', line 60

def urls(container)
  begin 
    response = head_container(container.key)
    return {} unless response.headers['X-Cdn-Enabled'] == 'True'
    urls_from_headers response.headers
  rescue Fog::Service::NotFound
    {}
  end
end