S3 compatible APIs

1. Source your OpenStack .rc file

2. Get EC2 credentials

$ openstack --os-interface public ec2 credentials list

If you don't have any, create them with:

$ openstack --os-interface public ec2 credentials create

3. Create the S3 client configuration .s3cfg file as follows:

my_config.s3cfg
[default]
access_key = ***
secret_key = ***
host_base = s3-<region>.citycloud.com:8080
host_bucket = s3-<region>.citycloud.com:8080
use_https = True

where <region> is one of the following values: [kna1, fra1, tky1, dx1]

4. Run:

$ s3cmd --configure -c my_config.s3cfg

and accept all defaults.

4. Create an S3 bucket:

$ s3cmd mb s3://foo

5. Upload an object into the bucket, for example: 

$ echo "hello world" > bar; s3cmd put bar s3://foo/bar

6. Set a public read ACL on the object:

$ s3cmd setacl --acl-public s3://foo/bar

7 Fetch the object without an S3 client, for example:

$ curl https://s3-kna1.citycloud.com:8080/<tenant_id>:foo/bar

where <tenant_id> is your project ID which is visible from the Manage Projects page in the Control Panel.