Simple object store built on top of FoundationDB
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
README.md
main.go

README.md

fdb-object-store

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.

Running

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.

Using

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

License

All code is licensed under MIT.