# Object Storage limits

> The limits on buckets, bucket names, object keys, access keys, listings, presigned URLs and deletions in Object Storage.

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

This page lists every fixed limit in Object Storage, with the message you see when you reach one. The plan sets the storage allowance, and the page that covers each task explains how to work within its limits.

## Service

| What | Limit |
| --- | --- |
| Storage | The plan's allowance, shown as **Included** on the **Overview** tab. Uploads go on working above it, and the plan sets a rate per GB-month for the storage above it. A GB is 1024³ bytes. |
| Buckets | 25 on each service. Over it: `This service already has 25 buckets, which is the most one service may hold`. |
| Access keys | No fixed number. |
| Plan change | Keeps the allowance. For more storage included, move to a larger plan ([Change the plan](/docs/object-storage/order-object-storage/#change-the-plan)). |
| Changes while the service is not `active` | You cannot create or delete a bucket or create a key: `This service is suspended; it can be changed once it is active`, with the service's status in place of `suspended`. The dashboard shows **Upload…** and **New folder…** only while the service is `active`. You can revoke a key in any status. |
| Suspension | Keys stop working within a couple of minutes and work again when the service is active. The objects stay where they are. |
| After the service ends | Keys stop working within a couple of minutes. We keep the objects for 7 days, then delete them with their buckets ([Cancel the service](/docs/object-storage/order-object-storage/#cancel-the-service)). |

## Bucket names

| What | Limit |
| --- | --- |
| Prefix | Every name starts with your account namespace and a hyphen, such as `u7-`. We add it when you leave it out. |
| Length | 3–63 characters, prefix included. With the prefix `u7-`, you can type up to 60. Over it: `Use at most 63 characters, including the prefix.` |
| Characters | Lowercase letters, digits, hyphens and dots. We change uppercase letters to lowercase. Anything else: `Use lowercase letters, digits, hyphens and dots, and start and end with a letter or digit.` |
| First and last character | A letter or a digit. |
| Dots | Not next to another dot or a hyphen: `Dots and hyphens cannot be next to each other.` |
| Uniqueness | One bucket with each name across your account, whichever service holds it: `A bucket named u7-assets already exists`. |
| After a delete | The name stays taken for 7 days: `u7-assets was deleted recently and is still being removed. Pick another name, or wait for the removal to finish.` |
| Rename or move | Not possible. Create a new bucket and copy the objects into it with an S3 client. |

The dashboard checks the length, the characters and the dots as you type, and shows the message under **Name**. It shows the messages about a name that is taken after you select **Create bucket**. [Create a bucket through the API](/docs/object-storage/buckets/#create-a-bucket-through-the-api) lists the messages the API gives for each rule.

## Buckets

| What | Limit |
| --- | --- |
| Region | One, chosen when you create the bucket. The bucket answers only at that region's endpoint. |
| Objects in a bucket | No fixed number. |
| Public access | None. Every request needs a signature from an access key, or a presigned URL. |
| Versions | None. An upload replaces an object that has the same key, and a deleted object cannot be restored. |
| Custom domains | None. Buckets answer only at the regional endpoints. |
| Deleting a bucket that holds objects | Needs the tick box in the dashboard, or `force=true` through the API. Otherwise: `u7-assets is not empty. Delete it with force to destroy its contents as well.` |

## Objects

| What | Limit |
| --- | --- |
| Object key | Up to 1,024 bytes in UTF-8 for uploads in the dashboard and presigned URLs from the API. Over it: `Object keys are at most 1024 bytes`. |
| Object size | The dashboard and the API check no size. The dashboard sends each file in one request, so upload files of several gigabytes with an S3 client, which sends them in parts. |
| Uploads in the dashboard | Files only, one request each. Upload a folder with its contents from an S3 client. |
| Downloads in the dashboard | One object at a time. |
| Folder names in the dashboard | No backslash: `Enter a folder name without backslashes.` We remove a `/` at the start or the end. |

## Access keys

| What | Limit |
| --- | --- |
| Keys on a service | No fixed number. |
| Label | 1–64 characters: letters, digits, spaces, dots, hyphens and underscores, starting with a letter or a digit. Otherwise: `Labels use letters, digits, spaces, dots, hyphens and underscores`. |
| Label on a service | Each key on a service has a label of its own, and labels that differ only in upper and lower case count as the same: `A key labelled ci deploy already exists on this service`. |
| Access key ID | 24 characters, starting with `AKIA`. |
| Secret key | 43 characters, shown once when you create the key. |
| Permissions | **Read only** or **Read and write**. No key can create or delete a bucket. |
| Scope | One bucket of the service, or **All buckets on this account**. |
| Regions | A key works at every regional endpoint. |
| Time to take effect | Up to a couple of minutes after you create or revoke a key. |

[What a key can do](/docs/object-storage/access-keys/#what-a-key-can-do) explains the permissions and scopes.

## Presigned URLs

| What | Limit |
| --- | --- |
| Lifetime of a link from the API | 60–3600 seconds, 900 by default. We shorten a request for up to 86400 seconds to 3600. Below 60 or above 86400, the API answers `422`. |
| What a link does | One operation on one object: `get`, `put` or `delete`. |
| Uses | Any number, until the link expires. |
| Object key | Up to 1,024 bytes: `Object keys are at most 1024 bytes`. |
| Content type | Up to 255 characters, for `put`. |
| Links from an S3 client | Signed with your key. They stop working when they expire or when you revoke the key. |

[Share a file with a presigned URL](/docs/object-storage/objects/#share-a-file-with-a-presigned-url) shows both ways to create one.

## Listing and deleting

| What | Limit |
| --- | --- |
| Entries per page in the dashboard | 200. **Load more** lists the next 200. |
| Entries per page through the API | 1–1000 (`max_keys`), 200 by default. |
| `prefix` through the API | Up to 1,024 characters. |
| `token` through the API | Up to 2,048 characters. |
| Keys in one delete request through the API | 1–1000. |
| Deleting a folder in the dashboard | Up to 10,000 objects under each folder in one run. Over it: `A folder had more than the browser deletes at once; run the delete again for the rest.` |

## Usage history

| What | Limit |
| --- | --- |
| Measurement | Every hour, for every bucket. Sizes and object counts come from the last measurement. |
| History through the API | 1–366 days, 30 by default: `days` on [`GET /api/v1/client/object-storage/{service_id}/usage`](/docs/api/reference/client/object-storage/#op-get-api-v1-client-object-storage-service-id-usage). |
| **Stored over time** chart | The last 7, 30 or 90 days, in at most 120 bars. |

## Connection

| What | Limit |
| --- | --- |
| Endpoint | `https://s3.<region>.coritan.com:7337`, one for each region. |
| Port | 7337. Port 443 does not serve Object Storage. |
| Protocol | HTTPS with TLS 1.2 or 1.3. A plain HTTP request to port 7337 answers `400 Bad Request`. |
| Addressing | Path style only. |
| Signature | AWS Signature Version 4, with any region name. |
| Host | The endpoint's host and port, exactly. A request sent to an IP address, or through a proxy that changes the `Host` header, fails with `SignatureDoesNotMatch`. |

[Connect an S3 client](/docs/object-storage/connect-an-s3-client/#the-settings) explains each setting.

## Rate limits

The Object Storage routes of the Coritan API have no budget of their own. They count towards the limits on requests from one address that [Rate limits](/docs/api/rate-limits/) describes. S3 requests go to the regional endpoint and do not count towards those limits.

## Related

- [Object Storage](/docs/object-storage/)
- [Create and delete buckets](/docs/object-storage/buckets/)
- [Create and revoke access keys](/docs/object-storage/access-keys/)
- [Troubleshoot Object Storage](/docs/object-storage/troubleshooting/)
