References

S3 API Reference

Use the S3 protocol with dotmesh

Overview

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.

Authentication

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

PutObject

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 127.0.0.1:32607/s3/alice:apples/hello-world.txt

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

$ dm log
commit e5041af1-6f5a-4390-6689-5148d336bce4
author: 
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.