NAME

MogileFS::Client::FilePaths - Client library for use with FilePaths plugin in MogileFS

SYNOPSIS

use MogileFS::Client::FilePaths;

# From MogileFS::Client (See its documentation for details)
$mogc = MogileFS::Client->new(domain => "foo.com::my_namespace",
                              hosts  => ['10.0.0.2', '10.0.0.3']);

$key   = "/path/to/file";   # The FilePaths plugin lays a path structure on top of standard mogilefs.
$class = "user_images";     # Files still belong to classes
$fh = $mogc->new_file($key, $class);

print $fh $data;

unless ($fh->close) {
   die "Error writing file: " . $mogc->errcode . ": " . $mogc->errstr;
}

# Find the URLs that the file was replicated to.  May change over time.
@urls = $mogc->get_paths($key);

# no longer want it?
$mogc->delete($key);

# List files in a directory
@files = $mogc->list("/path/to");

# Each element is a hashref, see below for more keys.
@file_names = map { $_->{name} } @files;

DESCRIPTION

This module is a subclass of the MogileFS::Client library, it provides a similar interface for extra functionality provided in the FilePaths plugin.

All methods are inhereted and usable from the MogileFS::Client library, with only the exceptions listed below.

METHOD CHANGES

new_file

The fourth argument to the new_file method is a hashref of options for this transaction. This module handles a new option called 'meta' which is metadata to be stored along with the file in mogilefs. For example:

$filehandle = $mogc->new_file($path, $class, $size, {
    meta => {
        mtime => scalar(time),
        foo => "bar",
    },
});

NEW METHODS

list

@files = $mogc->list($path)

Given a path, returns a list of files contained in that path. Each element of the returned list is a hashref with the following possible keys:
name

Contains the name of the file

path

Contains the fully qualified path of the file

is_directory

True if item is a directory

is_file

True if item is a file

modified

Value of mtime metadata field stored with this file.

size

Size in bytes for this file.

rename

$rv = $mogc->rename($oldpath, $newpath)

Attempts to rename $oldpath to $newpath, returns true on success and false on failure.