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-FED: FedoraBitStore |
|
Python |
Any Using Django |
||
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 |
ID Type |
ID Gen |
Write? |
Rewrite? |
Read-Only MD |
Writable MD |
Listing Options |
Transactions |
||
---|---|---|---|---|---|---|---|---|---|---|
AKU-API |
URI |
User or Store |
Yes |
Yes |
Size |
? |
All |
Optional, JTA |
||
AKU-FS |
file:/// URI |
Store |
Yes |
Yes |
Size |
None |
All |
No |
||
ALF-API |
URL |
User or Store |
Yes |
Yes |
Size |
None |
All |
Optional, JTA |
||
ALF-FS |
store:// URL |
User or Store |
Yes |
Yes |
Size |
None |
All |
Optional, JTA |
||
ALF-HTT |
http:// URL |
N/A |
No |
No |
Size |
None |
None |
Optional, JTA |
||
ALF-REP |
URL |
User or Store |
Yes |
Yes |
Size |
None |
All |
Optional, JTA |
||
ALF-ROU |
URL |
User or Store |
Yes |
Yes |
Size |
None |
All |
Optional, JTA |
||
BIT-API |
Unicode String |
User or Store |
Yes |
Yes |
Any (Map) |
None |
None |
No |
||
BIT-FED |
(NCNameChar)* |
User or Store |
Yes |
No |
Size |
None |
None |
No |
||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="f8ee6422-7e29-4acd-befb-92a962fdfa7d"><ac:plain-text-body><![CDATA[ |
BIT-FS |
([0-9]){38,40} |
User or Store |
Yes |
Yes |
Size |
None |
None |
No |
|
BIT-HON |
? |
? |
? |
? |
? |
None |
None |
No |
||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="61062ca4-b131-494f-b51b-804b52bbf568"><ac:plain-text-body><![CDATA[ |
BIT-S3 |
([0-9]){38,40} |
User or Store |
Yes |
Yes |
Size |
None |
None |
No |
]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="4dfce43c-8edb-4c0f-a44e-c1192e8dcdf1"><ac:plain-text-body><![CDATA[ |
BIT-SRB |
([0-9]){38,40} |
User or Store |
Yes |
Yes |
Size |
None |
None |
No |
]]></ac:plain-text-body></ac:structured-macro> |
DJA-API |
Unicode String |
User |
Yes |
Yes |
Size |
None |
None |
No |
||
DJA-FS |
Unicode String |
User |
Yes |
Yes |
Size |
None |
None |
No |
||
DJA-FS |
Unicode String |
User |
Yes |
Yes |
Size |
None |
None |
No |
||
DJA-S3 |
Unicode String |
User |
Yes |
Yes |
Size |
None |
None |
No |
||
DSY-API |
Unicode String |
Store |
Yes |
No |
None |
None |
None |
No |
||
DSY-FS |
Unicode String |
Store |
Yes |
No |
None |
None |
None |
No |
||
EBS-API |
byte[] |
Store |
Yes |
No |
Size |
None |
None |
No |
||
EBS-FS |
GUID or String |
Store |
Yes |
No |
Size |
None |
None |
No |
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 - Not a Store API; just models a file with a MIME type
- Jakarta Slide ContentStore - Defunct; has versioning semantics
- Jargon API for SRB and iRODS - Models files and directories, with metadata
- JSPWiki FileSystemProvider - Fedora Repository Impl available; API has versioning semantics.
- 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