Shawn M Moore > Jifty > Jifty::CAS

Download:
Jifty-1.10518.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  13
Open  4
Stalled  1
View/Report Bugs
Source  

NAME ^

Jifty::CAS - Jifty's Content-Addressable Storage facility

SYNOPSIS ^

  my $key = Jifty::CAS->publish('js' => 'all', $content,
                      { hash_with => $content, # default behaviour
                        content_type => 'application/x-javascript',
                      });

  $ie_key = Jifty::CAS->publish('js' => 'ie-only', $ie_content,
                      { hash_with => $ie_content,
                        content_type => 'application/x-javascript',
                      });

  $key = Jifty::CAS->key('js', 'ie-only');
  my $blob = Jifty::CAS->retrieve('js', $key);

DESCRIPTION ^

Provides an in-memory md5-addressed content store. Content is stored under a "domain", and can be addressed using wither the "key", which is an md5 sum, or the "name", which simply stores the most recent key provided with that name.

BACKENDS ^

The default data store is an per-process, in-memory store. A memcached backed store is also available and has the benefits of sharing the cache across all instances of a Jifty app using Jifty::CAS. The memcached store is limited to objects less than 1MB in size, however.

METHODS ^

publish DOMAIN NAME CONTENT METADATA

Publishes the given CONTENT at the address DOMAIN and NAME. METADATA is an arbitrary hash; see Jifty::CAS::Blob for more. Returns the key on success, or undef on failure.

key DOMAIN NAME

Returns the most recent key for the given pair of DOMAIN and NAME, or undef if none such exists.

retrieve DOMAIN KEY

Returns a Jifty::CAS::Blob for the given pair of DOMAIN and KEY, or undef if none such exists.

serve_by_name DOMAIN NAME REQUESTED_KEY

Intelligently serves up the content of the object at NAME (not REQUESTED_KEY) in DOMAIN. REQUESTED_KEY is currently used only to check if the content at NAME equals the content requested. If so, this method responds with an HTTP 304 status, indicating the content hasn't changed. This use case assumes that content is served to clients from the CAS with the CAS key (an MD5 sum) as the filename or part of it.

The content_type key in the requested object's metadata is expected to be set and is used for the HTTP response.

This method is usually called from a dispatcher rule. Returns the HTTP status code set by this method (possibly for your use in the dispatcher).

syntax highlighting: