S3 API Reference

Use the S3 protocol with dotmesh


In addition to the RPC API we provide a limited S3-compatible API. This is available at /s3 and the supported commands are explained below.


Our version of the S3 api uses basic authentication, which should be your username and password and can be supplied to curl using -u <username>:<password>.

Bucket naming convention

The convention for dot names -> s3 bucket naming is <namespace>:<name>@<branch> - if using master branch, you can just use <namespace>:<name>. For example, the URL to Alice’s dot apples would be <host>:<port>/s3/alice:apples.

Supported endpoints


URL format: <host>:<password>/s3/<namespace>:<name>/<object-key> Putting objects is used for uploading or changing files. The following example creates a dot, creates a file then puts the file into the dot using s3:

dm init alice/apples
echo "hello, world" > hello-world.txt
curl -T hello-world.txt -u alice:notmypassword

This will result in a commit indicating the filename created or updated:

$ dm log
commit e5041af1-6f5a-4390-6689-5148d336bce4
date: 1534429919723622772

    saving file put by s3 api hello-world.txt

And the file will be written with the filename hello-world.txt which was supplied as the key.