API:EPrints/Storage

From EPrints Documentation
Revision as of 10:46, 25 August 2011 by Tdb01r (Talk | contribs)

Jump to: navigation, search

EPrints 3 Reference: Directory Structure - Metadata Fields - Repository Configuration - XML Config Files - XML Export Format - EPrints data structure - Core API - Data Objects


API: Core API

Latest Source Code (3.3, 3.2) | Revision Log | Before editing this page please read Pod2Wiki


Warning The interface for this module has not been finalised and may change in the future.

NAME

EPrints::Storage - store and retrieve objects in the storage engine

User Comments


SYNOPSIS

 my $store = $repository->storage();
 
 $store->store(
   $fileobj,    # file object
   "diddle.pdf",  # filename
   $fh        # file handle
 );
 

User Comments


DESCRIPTION

This module is the storage control layer which uses EPrints::Plugin::Storage plugins to support various storage back-ends. It enables the storage, retrieval and deletion of data streams. The maximum size of a stream is dependent on the back-end storage mechanism.

User Comments


METHODS

User Comments


new

$store = EPrints::Storage->new( $repository )

Create a new storage object for $repository. Should not be used directly, see EPrints::Session.

User Comments


store

$len = $store->store( $fileobj, CODEREF )

Read from and store all data from CODEREF for $fileobj. The filesize field in $fileobj must be set at the expected number of bytes to read from CODEREF.

Returns undef if the file couldn't be stored, otherwise the number of bytes read.

User Comments


retrieve

$success = $store->retrieve( $fileobj, $offset, $n, CALLBACK )

Retrieve the contents of the $fileobj starting at $offset for $n bytes.

CALLBACK = $rc = &f( BUFFER )

User Comments


delete

$success = $store->delete( $fileobj )

Delete all object copies stored for $fileobj.

User Comments


delete_copy

$ok = $store->delete_copy( $plugin, $fileobj )

Delete the copy of this file stored in $plugin.

User Comments


get_local_copy

$filename = $store->get_local_copy( $fileobj )

Return the name of a local copy of the file.

Will retrieve and cache the remote object using File::Temp if necessary.

Returns undef if retrieval failed.

User Comments


get_remote_copy

$url = $store->get_remote_copy( $fileobj )

Returns a URL from which this file can be accessed.

Returns undef if this file is not available via another service.

User Comments


get_plugins

@plugins = $store->get_plugins( $fileobj )

Returns the EPrints::Plugin::Storage plugin(s) to use for $fileobj. If more than one plugin is returned they should be used in turn until one succeeds.

User Comments


copy

$ok = $store->copy( $plugin, $fileobj )

Copy the contents of $fileobj into another storage $plugin.

Returns 1 on success, 0 on failure and -1 if a copy already exists in $plugin.

User Comments


open_write

$ok = $storage->open_write( $fileobj )

Start a write session for $fileobj. $fileobj must have at least the "filesize" property set (which is the number of bytes that will be written).

User Comments


write

$ok = $storage->write( $fileobj, $buffer )

Write $buffer to the storage plugin(s).

User Comments


close_write

$ok = $storage->close_write( $fileobj );

Finish writing to the storage plugin(s) for $fileobj.

User Comments


COPYRIGHT

User Comments