Skip to content

S3 compatible

S3 protocole is now available.


It is S3 Compatible and not S3 amazon. Some features might not be available yet or simply not available.

OpenStack Docs: S3/Swift REST API Comparison Matrix

Region : Some software ask for the region to be put in a setting field. Use the default us-east-1 even though all data is located in our datacenters in Switzerland, it is simply a compatibility parameter.

Create S3 Credentials

You first need to enable the credentials for the S3 proptocol.

Run the following command and keep the access and secret keys in a safe place.

taylor@laptop:~$ openstack ec2 credentials create
| Field      | Value                                                                                                                                                |
| access     | 1161b3e891f24xxxxxxxxxxxxxxxxxxx                                                                                                                     |
| links      | {'self': ''} |
| project_id | d1440aa24a65411fb9bac2b842c8defa                                                                                                                     |
| secret     | 2e39f75488954xxxxxxxxxxxxxxxxxxx                                                                                                                     |
| trust_id   | None                                                                                                                                                 |
| user_id    | 153855c4fa1b4415bdd7681221259f72                                                                                                                     |

List S3 credentials

openstack ec2 credentials list

The server to connect to is :

Setting up aws client

taylor@laptop:~$ apt install awscli 
taylor@laptop:~$ aws configure
AWS Access Key ID [None]: <your access key> 
AWS Secret Access Key [None]: <your secret key>
Default region name [None]:
Default output format [None]:

Listing buckets using aws-cli

taylor@laptop:~$ aws --endpoint-url= s3api list-buckets


    "Buckets": [
            "Name": "volumebackups",
            "CreationDate": "2009-02-03T16:45:09.000Z"
    "Owner": {
        "DisplayName": "taylor:taylor",
        "ID": "taylor:taylor"


The creationDate while listing directories will always be 2009-02-03T16:45:09.000Z'' which correpsonds to the date of the first commit of the s3api. it is a hardcoded value.

Bug #1889386

Creating a bucket

creating the bucket "plesk"

taylor@laptop:~$ aws --endpoint-url= s3api create-bucket --bucket plesk


    "Location": "/plesk"

Uploading a directory

taylor@laptop:~$aws s3 cp --endpoint-url= <your-directory> s3://<your-bucket>/ --recursive


The header 100-continue isn't supported. In case your uploads show no progress with the information Waiting for 100 Continue response then you have to modify your s3api tool:

sudo vim /usr/lib/python3/dist-packages/botocore/

def _send_request(self, method, url, body, headers, *args, **kwargs):
self._response_received = False
if headers.get('Expect', b'') == b'100-continue':
    self._expect_header_set = False

Set the line self._expect_header_set to False instead of True

Back to top