Skip to content

Quickstart

This guide takes you from nothing to a stored object in four steps: create an access key, point an S3 client at Verda, create a bucket, and upload and download an object.

You will need a Verda account with an active project and a positive balance. See the Object Storage overview for endpoint and pricing details.

1. Create an access key

Object Storage uses S3 access keys, which are separate from the Cloud API credentials you use for the Verda API, the CLI, and Terraform.

In the console, open your project and go to Project management -> Credentials. In the Object Storage Access Keys section, click Create, name the key (up to 32 characters), and confirm with Create access key.

The Object storage access key generated dialog then shows the Access key and the Secret key. Copy both before you close it, because the secret key is shown this once and cannot be retrieved later from the console or the API.

If your project has no keys yet, the Object storage page opens the same dialog from Getting started -> Generate your keys. For the rest of what the console covers, see Manage Object Storage in the console.

You can also create a key through the API:

curl -X POST https://api.verda.com/v1/object-storage/access-keys \
  -H "Authorization: Bearer $VERDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "quickstart-key"}'

The response contains access_key and secret_key. Store the secret key somewhere safe.

2. Configure your S3 client

Use these connection settings:

  • Endpoint: https://objects.eu-north-3.verda.storage
  • Region: us-east-1

Using AWS CLI

Store the Verda settings in a separate named profile, here called verda. Running aws configure set without --profile writes to your default profile and overwrites any AWS credentials you already have there.

aws configure set aws_access_key_id <ACCESS_KEY> --profile verda
aws configure set aws_secret_access_key <SECRET_KEY> --profile verda
aws configure set region us-east-1 --profile verda
aws configure set endpoint_url https://objects.eu-north-3.verda.storage --profile verda
aws configure set request_checksum_calculation when_required --profile verda
aws configure set response_checksum_validation when_required --profile verda

The two checksum settings keep recent AWS CLI versions from sending checksum headers that Verda Object Storage does not support. Setting the endpoint in the profile requires AWS CLI 2.13 or later. On older versions, pass --endpoint-url https://objects.eu-north-3.verda.storage on each command instead.

Add --profile verda to your commands, or run export AWS_PROFILE=verda to use the profile for the rest of your shell session.

Using boto3 (Python)

import boto3
from botocore.config import Config

s3 = boto3.client(
    "s3",
    endpoint_url="https://objects.eu-north-3.verda.storage",
    aws_access_key_id="<ACCESS_KEY>",
    aws_secret_access_key="<SECRET_KEY>",
    region_name="us-east-1",
    config=Config(
        s3={"addressing_style": "path"},
        request_checksum_calculation="when_required",
        response_checksum_validation="when_required",
    ),
)

Using Verda CLI

verda object-storage configure \
  --endpoint https://objects.eu-north-3.verda.storage \
  --access-key <ACCESS_KEY> \
  --secret-key <SECRET_KEY>

Read more about Verda CLI.

3. Create a bucket

Bucket names are globally unique and follow standard S3 naming rules (3 to 63 characters). Create buckets in the console or through the Verda API. Creating buckets through the S3 API (for example aws s3 mb) is not supported.

Open your project, go to Storage -> Object storage, and click Create bucket. Enter a Bucket name, pick the Location, and confirm.

curl -X POST https://api.verda.com/v1/object-storage/buckets \
  -H "Authorization: Bearer $VERDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "my-bucket"}'

4. Upload and download an object

Using AWS CLI

# upload
aws s3 cp ./photo.jpg s3://my-bucket/photo.jpg --profile verda

# download
aws s3 cp s3://my-bucket/photo.jpg ./photo-downloaded.jpg --profile verda

Using boto3 (Python)

s3.upload_file("photo.jpg", "my-bucket", "photo.jpg")
s3.download_file("my-bucket", "photo.jpg", "photo-downloaded.jpg")

Using Verda CLI

# upload
verda object-storage cp ./photo.jpg s3://my-bucket/photo.jpg

# download
verda object-storage cp s3://my-bucket/photo.jpg ./photo-downloaded.jpg

Large uploads and downloads run as parallel parts and resume automatically if interrupted: re-run the same command to continue.

Next steps

  • Verda CLI: Object Storage: the full command reference, including sync, mv, recursive transfers, multiple profiles, and interactive browsing.
  • Object Storage overview: features, performance, security, pricing, and Beta quota.
  • Verda API: the /v1/object-storage endpoints for buckets and access keys.