NAME
Jifty::CAS::Store - Abstract class for Jifty's Content-Addressed Storage
DESCRIPTION
This is the abstract base class for a backend store for Jifty::CAS. For more information, see "DESCRIPTION" in Jifty::CAS.
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.
_store DOMAIN NAME BLOB
Stores the BLOB (a Jifty::CAS::Blob) in the backend. Returns the key. Subclasses should override this, but it should not be called directly -- use "publish" instead.
key DOMAIN NAME
Returns the most recent key for the given pair of DOMAIN
and NAME
, or undef if none such exists. Subclasses should override this.
retrieve DOMAIN KEY
Returns a Jifty::CAS::Blob for the given pair of DOMAIN
and KEY
, or undef if none such exists. Subclasses should override this.
uri DOMAIN NAME
Returns a URL where the given DOMAIN
and NAME
can be accessed.
serve DOMAIN ARGUMENT ENV
Serves a plack request in ENV
, given a DOMAIN
and an ARGUMENT
, which may wither be a key or a name.
This correctly uses the If-None-Match
and Etag
headers to send HTTP 304 responses to unchanged content. Additionally, 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 only called by "wrap" in JiftY::CAS, which calls this method as appropriate for requests under /__jifty/cas/
.
durable
Returns true if the backing store is durable -- that is, if there is a guarantee that data placed there will be accessible from all processes at all later times.