> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ibee.ai/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ibee.ai/docs/_mcp/server.

# Buckets

> Containers for objects in IBEE Object Storage. Create buckets, configure settings, and manage their lifecycle.

A **bucket** is a container for objects. Every object lives in exactly one bucket, and a bucket lives in a single location (chosen at creation).

## What you can do with a bucket

#### [Bucket Policies](/docs/infrastructure/object-storage/buckets/bucket-policies)

Toggle public access, scope API token access by bucket.

#### [Lifecycle Management](/docs/infrastructure/object-storage/buckets/lifecycle-management)

Automate object expiry, abort stale uploads, transition storage classes.

#### [CORS](/docs/infrastructure/object-storage/buckets/cors)

Allow browser apps from your domains to read or write to the bucket.

#### [Custom Domains](/docs/infrastructure/object-storage/buckets/custom-domains)

Serve bucket content from your own hostname (e.g. `cdn.example.com`).

#### [Event Notifications](/docs/infrastructure/object-storage/buckets/event-notifications)

Send a webhook POST when objects are created or deleted.

## Naming rules

Bucket names must:

* Be **3 to 63 characters** long.
* Contain only **lowercase letters, numbers, and hyphens (`-`)** — dots (`.`) and underscores (`_`) are not allowed.
* Start and end with a **lowercase letter or number**.
* Be **globally unique** within IBEE Object Storage.

|           | Example                                            |
| --------- | -------------------------------------------------- |
| ✅ Valid   | `my-bucket`                                        |
| ✅ Valid   | `data-store-01`                                    |
| ✅ Valid   | `project-assets`                                   |
| ❌ Invalid | `My-Bucket` — uppercase not allowed                |
| ❌ Invalid | `-startwithdash` — cannot start with a hyphen      |
| ❌ Invalid | `endswithdash-` — cannot end with a hyphen         |
| ❌ Invalid | `bucket_with_underscore` — underscores not allowed |
| ❌ Invalid | `project.assets` — dots not allowed                |
| ❌ Invalid | `ab` — too short (minimum 3 characters)            |

## Create a bucket

### 1. Go to Object Storage

In the IBEE Solutions portal, click **Object Storage** in the left sidebar under **Products**.

The page lives at `portal.ibee.ai/organizations/{orgId}/workspaces/{workspaceId}/object-storage`.

### 2. Open the Create Bucket dialog

Click **+ Create Bucket** in the top right.

| Field                | Required | Description                                                                                                                                                                    |
| -------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Bucket Name**      | Yes      | 3–63 characters, lowercase letters, numbers, and hyphens only. Placeholder: `my-unique-bucket-name`.                                                                           |
| **Location**         | Yes      | **Automatic** (Asia Pacific) for the closest available region, or **Specify jurisdiction** to pin the bucket to a specific country (e.g. India).                               |
| **Storage Type**     | Yes      | `Standard` (default).                                                                                                                                                          |
| **Advanced options** | No       | Includes **Object Lock** — a permanent setting that can only be enabled here at creation. See [Objects → Locking](/docs/infrastructure/object-storage/objects/object-locking). |

Under **Automatic**, expand **Location hint (optional)** to suggest a preferred region.

### API placement

For public API requests, omit `site_id`. It is internal placement metadata,
not a value users should guess or copy from another product. The `region`
field is required and must be the Object Storage region identifier configured
for the target environment. Do not send a compute site ID or a display name.

The public API does not currently provide a region-discovery endpoint. Use the
region identifier provided for your environment; if it is not available in
your account configuration, contact support before creating the bucket.
Bucket creation requires the `object-storage.write` scope.

### 3. Save

Click **Create Bucket**. A toast appears: *"Bucket created successfully"*.

## List buckets

The Object Storage page lists every bucket in the organization with these columns:

| Column  | Description        |
| ------- | ------------------ |
| BUCKET  | Bucket name        |
| SIZE    | Total storage used |
| CREATED | Creation date      |

The usage panel at the top shows **Buckets**, **Objects**, **Storage Used**, and **Bandwidth Egress** for the organization.

## Bucket detail page

Click a bucket name to open it. The bucket page has three tabs:

| Tab          | Use                                                                                                     |
| ------------ | ------------------------------------------------------------------------------------------------------- |
| **Objects**  | Upload, download, list, and delete objects. See [Objects](/docs/infrastructure/object-storage/objects). |
| **Metrics**  | Storage and request usage for the bucket. See [Metrics](/docs/infrastructure/object-storage/metrics).   |
| **Settings** | All bucket-level configuration — see below.                                                             |

## Settings tabs

**Settings** opens a sub-navigation with these tabs:

| Tab                     | Configures                                                                                                                                          |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **General**             | Bucket metadata, **Public Access** toggle, **Object Lock** status, Delete Bucket.                                                                   |
| **Lifecycle Policies**  | Automatic expiry and storage-class transitions. See [Lifecycle](/docs/infrastructure/object-storage/buckets/lifecycle-management).                  |
| **CORS**                | Cross-origin browser access rules. See [CORS](/docs/infrastructure/object-storage/buckets/cors).                                                    |
| **Lock Settings**       | Object Lock retention (only if Object Lock was enabled at creation).                                                                                |
| **Event Notifications** | Webhook notifications for object creation and deletion. See [Event Notifications](/docs/infrastructure/object-storage/buckets/event-notifications). |
| **Custom Domains**      | Serve content from your own hostname. See [Custom Domains](/docs/infrastructure/object-storage/buckets/custom-domains).                             |

The **General** tab fields:

| Field         | Description                                   |
| ------------- | --------------------------------------------- |
| Name          | Bucket name                                   |
| Created       | Creation date                                 |
| Total Objects | Number of objects in the bucket               |
| Storage Used  | Total storage consumed                        |
| Public Access | Toggle — Disabled by default                  |
| Object Lock   | Read-only state — set permanently at creation |

## Delete a bucket

The **Delete Bucket** card sits at the bottom of the **General** tab — *"Once you delete a bucket, there is no going back. Please be certain."*

> **Warning**
>
> **All objects must be deleted before the bucket can be deleted.** If the bucket contains objects, the portal blocks the action with: *"This bucket contains X objects. You must delete all objects before deleting the bucket."*

> **Note**
>
> **Buckets with Object Lock enabled can't be deleted — even when empty.** If you enabled Object Lock at creation, the bucket is permanent and cannot be deleted, regardless of whether it contains any objects. See [Objects → Locking](/docs/infrastructure/object-storage/objects/object-locking).

## Related

* [Concepts](/docs/infrastructure/object-storage/core-concepts)
* [Getting started](/docs/infrastructure/object-storage/upload-your-first-object)
* [API Credentials](/docs/infrastructure/object-storage/api-tokens)
* [Pricing](/docs/infrastructure/object-storage/pricing)