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