The APIs listed on this page have the following attributes in common:
- They each provide a means to read and write persistent files with unique ids.
- They were designed with back-end pluggability in mind.
- They are not concerned with directory/folder semantics.
- They are not concerned with versioning semantics, but may allow files to be overwritten.
APIs and Implementations
API |
Language |
Target Application |
Known Implementations |
---|---|---|---|
Java |
General-Purpose |
AKU-FS: FSBlobStore |
|
Java |
Alfresco CMS |
ALF-FS: FileContentStore |
|
Java |
DSpace 2 (Unreleased) |
BIT-FS: DSBitStore |
|
Python |
General-Purpose |
||
Java |
Daisy CMS |
||
COM |
MS SQL Server |
||
Java |
Apache JackRabbit |
||
Java |
Fedora Repository (2.x to 3.1) |
LLS-FS: GenericFileSystem |
|
Java |
Topaz OTM |
||
Java / C |
General-Purpose |
Capability Matrix
API/Impl |
IDType |
IDGen |
Rewrite? |
Read-Only MD |
Writable MD |
Custom MD |
Transactions |
---|---|---|---|---|---|---|---|
AKU-API |
URI |
User or Store |
Yes |
size |
? |
? |
Optional, JTA |
AKU-FS |
file:///
URIs |
Store |
Yes |
size |
No |
No |
No |
Capabilities of Interest
- Ids
- Supported ID types?
- Can be store-generated?
- Can be user-provided?
- Content Rewritable?
- Readonly Metadata
- Which are impls expected to provide for reading?
- Settable Metadata
- Which are impls expected to provide for writing?
- Extensible?
- Transactional
- Supported by API?
- Required by impls?
- Two-phase commit?
Other APIs/Implementations of Interest
- DSpace 1 BitstreamStorageManager - Single impl, supports either local filesystem or SRB
- Eclipse - BlobStore- Single impl, maps UUIDs to files on disk
- JAF DataSource - Models a file with a MIME type
- Jakarta Slide ContentStore - Has revision semantics
- Jargon API for SRB and iRODS - Models files and directories, with metadata
- OKI Repository OSID - Has container semantics (Assets may contain other assets)
- Plone Large File Management - Several options, but no common interface
- MediaWiki FileStore - php source?