Provided by: libcatmandu-fedoracommons-perl_0.5-2_all 

NAME
Catmandu::Store::File::FedoraCommons - A Catmandu::FileStore to store files on disk into a Fedora3 server
SYNOPSIS
# From the command line
# Create a configuration file
$ cat catmandu.yml
---
store:
files:
package: File::FedoraCommons
options:
baseurl: http://localhost:8080/fedora
username: fedoraAdmin
password: fedoraAdmin
namespace: demo
model: DC
purge: 1
# Export a list of all file containers
$ catmandu export files to YAML
# Export a list of all files in container 'demo:1234'
$ catmandu export files --bag 1234 to YAML
# Add a file to the container 'demo:1234'
$ catmandu stream /tmp/myfile.txt to files --bag 1234 --id myfile.txt
# Download the file 'myfile.txt' from the container 'demo:1234'
$ catmandu stream files --bag 1234 --id myfile.txt to /tmp/output.txt
# Delete the file 'myfile.txt' from the container 'demo:1234'
$ catmandu delete files --root t/data --bag 1234 --id myfile.txt
# From Perl
use Catmandu;
my $store = Catmandu->store('File::FedoraCommons'
, baseurl => 'http://localhost:8080/fedora'
, username => 'fedoraAdmin'
, password => 'fedoraAdmin'
, namespace => 'demo'
, purge => 1);
my $index = $store->index;
# List all folder
$index->bag->each(sub {
my $container = shift;
print "%s\n" , $container->{_id};
});
# Add a new folder
$index->add({ _id => '1234' });
# Get the folder
my $files = $index->files('1234');
# Add a file to the folder
$files->upload(IO::File->new('<foobar.txt'), 'foobar.txt');
# Retrieve a file
my $file = $files->get('foobar.txt');
# Stream the contents of a file
$files->stream(IO::File->new('>foobar.txt'), $file);
# Delete a file
$files->delete('foobar.txt');
# Delete a folder
$index->delete('1234');
DESCRIPTION
Catmandu::Store::File::FedoraCommons is a Catmandu::FileStore implementation to store files in a Fedora
Commons 3 server. Each Catmandu::FileBag.
METHODS
new(%connection_parameters)
Create a new Catmandu::Store::FedoraCommons. The following connection parameters can be provided:
baseurl
The location of the Fedora Commons endpoint. Default: http://localhost:8080/fedora
user
The username to connect to Fedora Commons
password
The password to connect to Fedora Commons
namespace
The namespace in which all bag identifiers live. Default: demo
dsnamespace
The namespace used to create new data streams. Default: DS
md5enabled
Calculate and add a MD5 checksum when uploading content. Default: 1
versionable
Make data streams in Fedora versionable. Default: 0
purge
When purge is active, deletion of datastreams and records will purge the content in FedoraCommons.
Otherwise it will set the status to 'D' (deleted). Default: 0
model
When a model is set, then descriptive metadata can be added to the File::Store folders. Only one type
of model is currenty available 'DC'.
Examples:
$ cat record.yml
---
_id: 1234
title:
- My title
creator:
- John Brown
- Max Musterman
description:
- Files and more things
...
$ catmandu import YAML to files < record.yml
$ catmandu export files to YAML --id 1234
---
_id: 1234
title:
- My title
creator:
- John Brown
- Max Musterman
description:
- Files and more things
...
$ catmandu stream foobar.pdf to files --bag 1234 --id foobar.pdf
$ catmandu export files --bag 1234
---
_id: foobar.pdf
_stream: !!perl/code '{ "DUMMY" }'
content_type: application/pdf
control_group: M
created: '1504170797'
format_uri: ''
info_type: ''
location: demo:1234+DS.0+DS.0.0
locationType: INTERNAL_ID
md5: 6112b4f1b1a439917b8bbacc93b7d3fa
modified: '1504170797'
size: '534'
state: A
version_id: DS.0.0
versionable: 'false'
...
$ catmandu stream files --bag 1234 --id foobar.pdf > foobar.pdf
INHERITED METHODS
This Catmandu::FileStore implements:
Catmandu::FileStore
Catmandu::Droppable
The index Catmandu::Bag in this Catmandu::Store implements:
Catmandu::Bag
Catmandu::FileBag::Index
Catmandu::Droppable
The file Catmandu::Bag in this Catmandu::Store implements:
Catmandu::Bag
Catmandu::FileBag
Catmandu::Droppable
SEE ALSO
Catmandu::Store::File::FedoraCommons::Index, Catmandu::Store::File::FedoraCommons::Bag,
Catmandu::FileStore
perl v5.36.0 2023-02-05 Catmandu::Store...::FedoraCommons(3pm)