A simple object store built on top of FoundationDB. This is only a proof of concept developed for a blog post: Building an object store with FoundationDB.
Requires the FoundationDB Go bindings, follow the instructions here to install. Also requires the Gin web framework. After dependencies have been installed the server can be started with go run main.go
.
The object store is dead simple to use and only has two features, uploading files and downloading them.
File uploads are handled by making a POST file upload to /object/path/to/file.txt
. Everything after /object/
will be used as the file name, there is no notion of paths or directories but they can be simulated with slashes. When uploading a content type must also be specified with the POST form field content_type
.
# Example upload using HTTPie
$ http -f POST localhost:8080/object/images/my_image.png content_type="image/png" file@local_file.png
Downloading an existing file is as simple as making a GET request to the same past as the upload. This can also be done through a browser.
# Example download of previously uploaded file (with HTTPie)
$ http -d GET localhost:8080/object/images/my_image.png
All code is licensed under MIT.