# Object Storage

> Store files in S3-compatible buckets, reach them with scoped access keys from any S3 client, and browse them in the dashboard.

Source: https://docs.coritan.com/object-storage/

In the dashboard:

- /solutions/object-storage: https://www.coritan.com/solutions/object-storage
- /dashboard/storage: https://www.coritan.com/dashboard/storage
- /dashboard/storage/…/overview: https://www.coritan.com/dashboard/storage

Object Storage keeps files as *objects* in *buckets* and serves them over the S3 API, the interface that Amazon S3 made standard. The AWS CLI, rclone, s3cmd, the AWS SDKs and most backup tools work with it once you give them our endpoint and an access key. You can also upload, download and delete files in the dashboard.

Use it for backups, media, build artefacts, logs and other data that you read and write as whole files. Every bucket is private. Each request needs a signature from one of your access keys, or a presigned URL that you created.

## What a service includes

An Object Storage service gives you:

- A storage allowance, set by the plan, and a rate per GB-month for what your buckets hold above it.
- A *home region*, which you choose when you order. The service's first bucket goes there.
- Up to 25 buckets, in the home region or in any other region that offers Object Storage.
- Access keys that sign S3 requests. Each key is read-only or read-write, and works on one bucket or on every bucket on your account.

Every bucket name on your account starts with your *account namespace* and a hyphen, such as `u7-`. The namespace comes from your account, so all your services share it. [Bucket names](/object-storage/buckets/#bucket-names) gives the rules.

Each region has its own endpoint, `https://s3.<region>.coritan.com:7337`, where `<region>` is the region's code. For Frankfurt, the code is `fra` and the endpoint is `https://s3.fra.coritan.com:7337`. A bucket answers at the endpoint of the region you created it in.

## Your Object Storage services

Select **Object Storage** in the [dashboard](https://www.coritan.com/dashboard/storage) sidebar. The list shows every Object Storage service on your account that has not ended. Each row shows the **Service** name and plan, the home **Region**, the **Status**, how much of the allowance the buckets use under **Storage**, and the number of **Buckets** and **Keys**. **Since** is the date you ordered it.

- Filter the list with **All**, **Active**, **Pending** or **Suspended**. `Pending` covers a service that waits for payment or that we are setting up.
- Type in the search box to find a service by its name, plan or region.
- Select **Order Object Storage** to open the order page, as [Order Object Storage](/object-storage/order-object-storage/) describes.

Select a row to open the service. The header shows its name, status, plan, home region and service number. **Order another** opens the order page for one more service. The tabs are **Overview**, **Buckets**, **Access keys** and **Billing**.

A banner above the tabs appears while the service cannot be used in full:

**Waiting for payment**
: The first invoice is unpaid. We set the service up as soon as you pay it. **Open invoices** lists your invoices.

**Setting up**
: We are creating the service. This takes under a minute. Reload the page to see the result.

**Suspended**
: The service is suspended, usually because an invoice is overdue. Its access keys stop working and its objects stay where they are. You can change buckets and keys again once the service is active. [Failed payments and suspended services](/billing/failed-payments/) explains how to lift a suspension.

## Read the Overview tab

The **Overview** tab opens first.

When your buckets hold more than the plan's allowance, a warning such as `12.5 GB above the plan` appears at the top of the tab, with the plan's rate per GB-month for storage above the allowance. Its **Change plan** button opens the **Billing** tab, where a plan change moves the service to another billing cycle with the same allowance. To get a larger allowance, move to a larger plan as [Change the plan](/object-storage/order-object-storage/#change-the-plan) describes, or delete what you no longer need.

**Storage**, **Objects**, **Buckets** and **Access keys**
: What the service's buckets hold against the allowance, how many objects they hold, how many buckets the service has out of its limit, and how many keys you created on it. We measure storage and objects every hour, so these figures trail recent uploads and deletions.

**Endpoints**
: One row for each region the service uses, with the endpoint to copy: the home region first, then each other region that holds one of its buckets. **Bucket prefix** is the prefix every bucket name on your account starts with. **Signature** says that clients sign requests with AWS Signature Version 4 and that any region string works.

**Connect a client**
: Setup commands for the AWS CLI, rclone and s3cmd, filled in with your endpoint. Replace the placeholders with a key from the **Access keys** tab. [Connect an S3 client](/object-storage/connect-an-s3-client/) explains each setting.

**Stored over time**
: A bar chart of what the service stored over the last `7d`, `30d` or `90d`, from the hourly measurements. The chart shows at most 120 bars, so in a longer window each bar stands for several hours and shows the highest measurement among them. A dashed line marks the plan's allowance. `No measurements yet` means the chart has nothing to show for that window.

**Service**
: The **Plan**, the storage it has **Included**, the rate **Above the plan**, the **Billing** cycle, the date it **Renews**, the **Home region**, the **Namespace**, the **Bucket limit**, what happens **After cancellation**, and the date it started (**Since**). **Open Billing** opens the **Billing** tab.

**Tags**
: Labels to find the service by, as [Tag your services](/get-started/tags/) describes.

## What you can do

Set up storage:

- [Order Object Storage](/object-storage/order-object-storage/), and manage the plan on the **Billing** tab
- [Create and delete buckets](/object-storage/buckets/), the **Buckets** tab
- [Create and revoke access keys](/object-storage/access-keys/), the **Access keys** tab

Use it:

- [Connect an S3 client](/object-storage/connect-an-s3-client/) with the endpoint and a key
- [Upload, download and delete objects](/object-storage/objects/) in the dashboard's object browser, or share a file with a presigned URL

Pay for it and fix problems:

- [How Object Storage is billed](/object-storage/usage-and-billing/)
- [Object Storage limits](/object-storage/limits/)
- [Troubleshoot Object Storage](/object-storage/troubleshooting/)

The public page at `https://www.coritan.com/solutions/object-storage` describes the product. The order page in the dashboard lists the regions and plans you can actually order.

## How Object Storage is billed

Each Object Storage service is a service of its own, on the plan and billing cycle you order. The plan's price covers its storage allowance. We measure what your buckets hold every hour, and the plan sets a rate per GB-month for storage above the allowance.

[How Object Storage is billed](/object-storage/usage-and-billing/) explains how we measure storage and what the dashboard shows when your buckets go above the allowance. [Billing](/billing/) covers invoices, credit and payment.

## Limits and availability

- A service holds up to 25 buckets. There is no fixed limit on access keys.
- A bucket stays in the region you create it in, and you cannot rename it. It answers only at that region's endpoint.
- Clients connect over HTTPS on port 7337 and address buckets in the path, as in `https://s3.fra.coritan.com:7337/u7-assets/photo.jpg`. Bucket names as hostnames, such as `u7-assets.s3.fra.coritan.com`, do not resolve.
- We do not offer public buckets, custom domains or versioning.
- A plan change keeps the allowance. To get more storage included, order a larger plan.

[Object Storage limits](/object-storage/limits/) lists every limit.

## With the API

`GET /api/v1/client/object-storage/services` lists the Object Storage services on your account that have not ended, newest first, as `items` with a `total`.

```bash
curl https://api.coritan.com/api/v1/client/object-storage/services \
  -H "Authorization: Bearer $CORITAN_TOKEN"
```

```json
{
  "items": [
    {
      "id": 1207,
      "service_id": 1207,
      "label": "Object Storage 250 GB",
      "hostname": null,
      "status": "active",
      "product_name": "Object Storage 250 GB",
      "billing_cycle": "monthly",
      "region": "fra",
      "location_id": 1,
      "namespace": "u7",
      "bucket_prefix": "u7-",
      "quota_bytes": 268435456000,
      "used_bytes": 48318382080,
      "object_count": 1284,
      "bucket_count": 2,
      "key_count": 3,
      "overage_per_gb_month": 0.02,
      "created_at": "2026-09-01T10:00:00",
      "next_due_date": "2026-10-01T00:00:00"
    }
  ],
  "total": 1
}
```

`id` and `service_id` hold the same number: the service ID that every other Object Storage request takes. `label` is the name the dashboard shows, which is the service's `hostname` when it has one and the plan name otherwise.

`region` is the home region's code and `location_id` its location. `region` is `null` until setup finishes. `bucket_prefix` is the namespace with its hyphen.

`quota_bytes` is the allowance in bytes, where a GB is 1024³ bytes, or `null` on a plan without one. `used_bytes` and `object_count` add up the service's buckets at the last hourly measurement. `key_count` counts every key on the service, including keys that are turned off. `overage_per_gb_month` is the plan's rate for each GB-month above the allowance, in US dollars.

`GET /api/v1/client/object-storage/{service_id}` returns one service with the same fields and these as well:

`endpoints`
: A list of `region` and `endpoint` pairs: the home region first, then each other region that holds one of the service's buckets.

`overage_gb`
: How many GB the buckets hold above the allowance, at the last measurement.

`grace_days`, `max_buckets` and `presign_max_seconds`
: How many days we keep objects after the service ends, the most buckets the service may hold, and the longest a presigned URL from the API lasts, in seconds. They are `7`, `25` and `3600`.

A service ID that is not an Object Storage service on your account answers `404` with `Object storage service not found`.

The [Object Storage API reference](/api/reference/client/object-storage/#op-get-api-v1-client-object-storage-services) lists every field.

## API

- `GET /api/v1/client/object-storage/services`: The account's object storage services with their headline numbers (https://docs.coritan.com/api/reference/client/object-storage/#op-get-api-v1-client-object-storage-services)
