class Fog::Storage::Rackspace::Directory
Attributes
@!attribute [w] public Required for compatibility with other Fog
providers. Not Used.
@!attribute [w] public_url
Required for compatibility with other Fog
providers. Not Used.
Public Instance Methods
Destroy the directory and remove it from CDN
@return [Boolean] returns true if directory was deleted @raise [Fog::Storage::Rackspace::NotFound] - HTTP 404 @raise [Fog::Storage::Rackspace::BadRequest] - HTTP 400 @raise [Fog::Storage::Rackspace::InternalServerError] - HTTP 500 @raise [Fog::Storage::Rackspace::ServiceError] @note Directory
must be empty before it is destroyed. @see docs.rackspace.com/files/api/v1/cf-devguide/content/Delete_Container-d1e1765.html
# File lib/fog/rackspace/models/storage/directory.rb, line 67 def destroy requires :key service.delete_container(key) service.cdn.publish_container(self, false) if cdn_enabled? true rescue Excon::Errors::NotFound false end
Returns collection of files in directory @return [Fog::Storage::Rackspace::Files] collection of files in directory @raise [Fog::Storage::Rackspace::NotFound] - HTTP 404 @raise [Fog::Storage::Rackspace::BadRequest] - HTTP 400 @raise [Fog::Storage::Rackspace::InternalServerError] - HTTP 500 @raise [Fog::Storage::Rackspace::ServiceError]
# File lib/fog/rackspace/models/storage/directory.rb, line 82 def files @files ||= begin Fog::Storage::Rackspace::Files.new( :directory => self, :service => service ) end end
URL used to stream video to iOS devices. Cloud Files
will auto convert to the approprate format. @return [String] iOS URL @raise [Fog::Storage::Rackspace::NotFound] - HTTP 404 @raise [Fog::Storage::Rackspace::BadRequest] - HTTP 400 @raise [Fog::Storage::Rackspace::InternalServerError] - HTTP 500 @raise [Fog::Storage::Rackspace::ServiceError] @see docs.rackspace.com/files/api/v1/cf-devguide/content/iOS-Streaming-d1f3725.html
# File lib/fog/rackspace/models/storage/directory.rb, line 143 def ios_url urls[:ios_uri] end
Retrieve directory metadata @return [Fog::Storage::Rackspace::Metadata] metadata key value pairs.
# File lib/fog/rackspace/models/storage/directory.rb, line 51 def metadata unless attributes[:metadata] response = service.head_container(key) attributes[:metadata] = Fog::Storage::Rackspace::Metadata.from_headers(self, response.headers) end attributes[:metadata] end
Set directory metadata @param [Hash,Fog::Storage::Rackspace::Metadata] hash contains key value pairs
# File lib/fog/rackspace/models/storage/directory.rb, line 40 def metadata=(hash) if hash.is_a? Fog::Storage::Rackspace::Metadata attributes[:metadata] = hash else attributes[:metadata] = Fog::Storage::Rackspace::Metadata.new(self, hash) end attributes[:metadata] end
Is directory published to CDN
@return [Boolean] return true if published to CDN
@raise [Fog::Storage::Rackspace::NotFound] - HTTP 404 @raise [Fog::Storage::Rackspace::BadRequest] - HTTP 400 @raise [Fog::Storage::Rackspace::InternalServerError] - HTTP 500 @raise [Fog::Storage::Rackspace::ServiceError]
# File lib/fog/rackspace/models/storage/directory.rb, line 97 def public? if @public.nil? @public ||= (key && public_url) ? true : false end @public end
Returns the public url for the directory. If the directory has not been published to the CDN
, this method will return nil as it is not publically accessible. This method will return the approprate url in the following order:
-
If the service used to access this directory was created with the option :rackspace_cdn_ssl => true, this method will return the SSL-secured URL.
-
If the cdn_cname attribute is populated this method will return the cname.
-
return the default
CDN
url.
@return [String] public url for directory @raise [Fog::Storage::Rackspace::NotFound] - HTTP 404 @raise [Fog::Storage::Rackspace::BadRequest] - HTTP 400 @raise [Fog::Storage::Rackspace::InternalServerError] - HTTP 500 @raise [Fog::Storage::Rackspace::ServiceError]
# File lib/fog/rackspace/models/storage/directory.rb, line 130 def public_url return nil if urls.empty? return urls[:ssl_uri] if service.ssl? cdn_cname || urls[:uri] end
Reload directory with latest data from Cloud Files
@return [Fog::Storage::Rackspace::Directory] returns itself @raise [Fog::Storage::Rackspace::NotFound] - HTTP 404 @raise [Fog::Storage::Rackspace::BadRequest] - HTTP 400 @raise [Fog::Storage::Rackspace::InternalServerError] - HTTP 500 @raise [Fog::Storage::Rackspace::ServiceError]
Fog::Model#reload
# File lib/fog/rackspace/models/storage/directory.rb, line 110 def reload @public = nil @urls = nil @files = nil super end
Create or update directory and associated metadata @return [Boolean] returns true if directory was saved @raise [Fog::Storage::Rackspace::NotFound] - HTTP 404 @raise [Fog::Storage::Rackspace::BadRequest] - HTTP 400 @raise [Fog::Storage::Rackspace::InternalServerError] - HTTP 500 @raise [Fog::Storage::Rackspace::ServiceError] @note If public attribute is true, directory will be CDN
enabled @see docs.rackspace.com/files/api/v1/cf-devguide/content/Create_Container-d1e1694.html
# File lib/fog/rackspace/models/storage/directory.rb, line 166 def save requires :key create_or_update_container raise Fog::Storage::Rackspace::Error.new("Directory can not be set as :public without a CDN provided") if public? && !cdn_enabled? @urls = service.cdn.publish_container(self, public?) true end
URL used to stream resources @return [String] streaming url @raise [Fog::Storage::Rackspace::NotFound] - HTTP 404 @raise [Fog::Storage::Rackspace::BadRequest] - HTTP 400 @raise [Fog::Storage::Rackspace::InternalServerError] - HTTP 500 @raise [Fog::Storage::Rackspace::ServiceError] @see docs.rackspace.com/files/api/v1/cf-devguide/content/Streaming-CDN-Enabled_Containers-d1f3721.html
# File lib/fog/rackspace/models/storage/directory.rb, line 154 def streaming_url urls[:streaming_uri] end
Private Instance Methods
# File lib/fog/rackspace/models/storage/directory.rb, line 176 def cdn_enabled? service.cdn && service.cdn.enabled? end
# File lib/fog/rackspace/models/storage/directory.rb, line 186 def create_or_update_container headers = attributes[:metadata].nil? ? {} : metadata.to_headers service.put_container(key, headers) end
# File lib/fog/rackspace/models/storage/directory.rb, line 180 def urls requires :key return {} unless cdn_enabled? @urls ||= service.cdn.urls(self) end