A simple content-addressable store with tagging support
Factor out storeFile, unstoreFile, and verifyFile into a MTL style class. This class can provide its own Id type, and never returns FilePaths directly, which should allow a memory-only variant for testing purposes later. Control of storage ids now belongs to MonadFileStore. It was not really the place of the data layer (which is currently a set of SQL queries) to suddenly do one arbitrary file IO operation. |
||
|---|---|---|
| app | ||
| doc/man | ||
| src | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| package.yaml | ||
| README.md | ||
ca-store
ca-store is a content-addressable store for your files, be they documents, pictures, videos, or whatever.
Usually when we store files we give them a filename, so that we can refer to its contents. If you are a developer you will probably get a file handle, or if you are working at a really low level you will probably get an inode number. Regardless of what you get, you can use it to access your files later.
A content-addressable store will instead give you an id that depends on the contents of the file itself. This makes it useful for storing large amounts of read only data.