Home > fedorafs

fedorafs

Fedorafs is a project mainly written in Python, it's free.

python-fuse for Fedora Commons repository content (prototype)

FedoraFS is prototype code to expose objects in a Fedora-Commons repository to the filesystem using Python and FUSE.

The initial version of FedoraFS was written in 2009: https://techknowhow.library.emory.edu/blogs/rsutton/2009/01/16/fedorafs-python-fuse

That prototype code was submitted to the Open Repositories 2009 Developer Challenge and won the runner-up prize: http://dev8d.jiscinvolve.org/wp/2009/05/20/repochallenge-winners/

This version is a re-working of the first prototype using eulfedora for access to Fedora.

How to use:

./FedoraFs.py /path/to/mountpoint

Can also specify fedora connection options: host, port, username, password, version These are all listed in the fuse help you see when you run ./FedoraFs.py -h

Example usage: ./FedoraFs.py -o base_url=http://fedora.server.edu:8080/fedora -o username=login -o password= fedora/

If password is specified but blank, you will be prompted to enter a password.

To unmount: fusermount -u fedora/

Use -d when in development to see fuse debugging output, error messages, etc.

current status of implementation:

directory structure: pid (object treated as directory) .info (top-level properties) datastreams dissemination methods relations to other fedora objects (directory) pid (symlink to top-level object) .versions
datetime (one for each revision in object history) .info (top-level properties - but not actually versioned?) datastreams as of datetime

  • creation/modification time set for top-level of object but little else
    • modification time for all versioned inferred from datetime in path
  • no caching implemented yet; working with large datastreams is very inefficient and slow

This is just a first-draft directory layout. Obviously, different types of content or applications may need different file layouts or configurations.

prerequisites:

  • FUSE kernel module (or other OS support)
  • Python FUSE support (python-fuse)
  • eulfedora
  • Fedora-Commons 3.4.x

Note: python-fuse and eulfedora can be installed using easy_install or pip install

Previous:geocoder