Method: CloudFiles::Container#make_public
- Defined in:
- lib/cloudfiles/container.rb
#make_public(options = {:ttl => 86400}) ⇒ Object
Makes a container publicly available via the Cloud Files CDN and returns true upon success. Throws NoSuchContainerException if the container doesn’t exist or if the request fails.
Takes an optional hash of options, including:
:ttl, which is the CDN cache TTL in seconds (default 86400 seconds or 1 day, minimum 3600 or 1 hour, maximum 259200 or 3 days)
:user_agent_acl, a Perl-compatible regular expression limiting access to this container to user agents matching the given regular expression
:referrer_acl, a Perl-compatible regular expression limiting access to this container to HTTP referral URLs matching the given regular expression
container.make_public(:ttl => 8900, :user_agent_acl => "/Mozilla/", :referrer_acl => "/^http://rackspace.com")
=> true
285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 |
# File 'lib/cloudfiles/container.rb', line 285 def make_public( = {:ttl => 86400}) if .is_a?(Fixnum) print "DEPRECATED: make_public takes a hash of options now, instead of a TTL number" ttl = = {:ttl => ttl} end response = self.connection.cfreq("PUT", @cdnmgmthost, @cdnmgmtpath, @cdnmgmtport, @cdnmgmtscheme) raise CloudFiles::Exception::NoSuchContainer, "Container #{@name} does not exist" unless (response.code == "201" || response.code == "202") headers = { "X-TTL" => [:ttl].to_s , "X-CDN-Enabled" => "True" } headers["X-User-Agent-ACL"] = [:user_agent_acl] if [:user_agent_acl] headers["X-Referrer-ACL"] = [:referrer_acl] if [:referrer_acl] response = self.connection.cfreq("POST", @cdnmgmthost, @cdnmgmtpath, @cdnmgmtport, @cdnmgmtscheme, headers) raise CloudFiles::Exception::NoSuchContainer, "Container #{@name} does not exist" unless (response.code == "201" || response.code == "202") refresh true end |