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 |
||
JKB-API: JackRabbit BLOBStore (deprecated) |
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="290d2775-66c7-466e-b9f0-686984e5eaa5"><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="14763c1b-8050-4c41-841a-e0b12e270974"><ac:plain-text-body><![CDATA[ |
BIT-S3 |
([0-9]){38,40} |
User or Store |
Yes |
Yes |
Size |
None |
None |
No |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="957cad4d-86b9-4f16-b240-d40d7ccf6621"><ac:plain-text-body><![CDATA[ |
BIT-SRB |
([0-9]){38,40} |
User or Store |
Yes |
Yes |
Size |
None |
None |
No |
DJA-API |
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 |
|
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="3698cce4-a676-4b09-a689-71d2dabb10e5"><ac:plain-text-body><![CDATA[ |
EBS-API |
byte[] |
Store |
Yes |
No |
Size |
None |
None |
No |
EBS-FS |
GUID or String |
Store |
Yes |
No |
Size |
None |
None |
No |
|
JKB-API |
Unicode String |
Store |
Yes |
Yes |
None |
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