NAME

LibreCat::FileStore - Abstract definition of a file storage implementation

SYNOPSIS

    use LibreCat::FileStore::XYZ;

    my $filestore => LibreCat::FileStore::XYZ->new(%options);

    my $generator = $filestore->list;

    while (my $key = $generator->()) {
        my $container = $filestore->get($key);

        for my $file ($container->list) {
            my $filename = $file->key;
            my $size     = $file->size;
            my $checksum = $file->md5;
            my $created  = $file->created;
            my $modified = $file->modified;
            my $io       = $file->data;
        }
    }

    my $container = $filestore->get('1234');

    if ($filestore->exists('1234')) {
        ...
    }

    my $container = $filestore->add('1235');

    $filestore->delete('1234');

DESCRIPTION

LibreCat::FileStore is an abstract definition of a file storage. File content is stored in a container given by an identifier. Each container can contain zero or more files.

METHODS

new(%options)

Create a new LibreCat::FileStore.

list()

Provide a listing of all available container keys. Returns an iterator with keys.

get($key)

Return a LibreCat::FileStore::Container given a $key.

add($key)

Creates a new container and returns a LibreCat::FileStore::Container.

delete($key)

Removed a container from the system.

SEE ALSO

LibreCat::FileStore::Container , LibreCat::FileStore::File