...
- 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(s) | Known Implementations | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Java | Alfresco CMS | ALF-FS: FileContentStore | |||||||||
JKRBIT-API: JackRabbit BLOBStore DSpace BitStore | Java | DSpace 2 (Unreleased) | BIT-FS: DSBitStore | ||||||||
Python | Any Web Application | Java | Apache JackRabbit | ||||||||
Java | Daisy CMS | ||||||||||
BITEBS-API: DSpace BitStore | Java | DSpace 2 (Unreleased) | COM | MS SQL Server | EBSBIT-FS: DSBitStore Custom ImplementationBIT | ||||||
JKR-SRB: SRBBitStore | Java | Apache JackRabbit | |||||||||
Java | Fedora Repository (2.x to 3.1) | LLS-FS: GenericFileSystem | Java / C | Any Fixed Content Repository | |||||||
Java | Topaz OTM | ||||||||||
EBSXAM-API: Windows Sharepoint EBS | COM | MS SQL Server | Java / C | Any Fixed Content Repository | Python | Any Web Application |
Supported Capabilities
- 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
- 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?