> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ibee.co.in/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ibee.co.in/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 **Infrastructure**.

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

### 2. Open the create-bucket page

Click **Create Bucket** in the top right. The create page has four sections:

| Section                        | Required | Description                                                                                                             |
| ------------------------------ | -------- | ----------------------------------------------------------------------------------------------------------------------- |
| **Bucket name**                | Yes      | 3–63 characters, lowercase letters, numbers, and hyphens only. Placeholder: `my-unique-bucket-name`.                    |
| **Location**                   | Yes      | See [Choose a location](#choose-a-location) below.                                                                      |
| **Storage type**               | Yes      | The storage types offered for the chosen location.                                                                      |
| **Versioning and object lock** | No       | **Versioning** and **Object lock (WORM)** toggles. See [Versioning and Object Lock](#versioning-and-object-lock) below. |

#### Choose a location

The **Location** section has two tabs:

* **Automatic** — **Automatic location** (the default) picks the best available region for the bucket. To choose yourself, click **Need a specific location? click here** and pick a site from the grid. Available sites are labelled with their country; pre-order sites are labelled **Talk to Sales**.
* **Specify jurisdiction** — coming soon. For jurisdiction-based placement, talk to sales.

If you pick a pre-order site or the jurisdiction tab, the footer button changes from **Create Bucket** to **Talk to Sales**.

#### Versioning and Object Lock

| Toggle                 | Effect                                                                                                                                                      |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Versioning**         | Keeps previous versions of overwritten or deleted objects. Off by default. Without it, deleted objects can't be recovered from older versions.              |
| **Object lock (WORM)** | Makes objects immutable while a retention period applies. Turning it on also turns on **Versioning**. Permanent — it can only be enabled here, at creation. |

With **Object lock (WORM)** on, pick a default retention mode — **None**, **Governance**, or **Compliance** — and, for Governance or Compliance, a **Retention period** in days (default 30, minimum 1). You can change the default retention later on the **Lock Settings** tab. See [Objects → Locking](/docs/infrastructure/object-storage/objects/object-locking).

### 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, **Public Access URL**, **Object Lock** status, and the **Danger Zone** (Empty bucket, 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 |

## Empty a bucket

**Empty bucket** permanently removes every object in a bucket while keeping the bucket and its settings. It runs as a background job, so you don't have to delete objects one by one.

### Open the Danger Zone

Open the bucket → **Settings** → **General**. The **Danger Zone** card at the bottom holds **Empty bucket** and **Delete bucket**.

### Start the job

Click **Empty bucket**. In the dialog, type the bucket name to confirm and click **Empty bucket**. *This action cannot be undone.*

### Track progress

A status strip replaces the button while the job runs — for example *Emptying bucket…*, *Finalizing empty bucket…*, or *Retrying empty bucket…*. Click **Cancel** to stop a running job. When it finishes, the strip shows the outcome (*Bucket contents were deleted*, *Bucket partially emptied*, *Some objects are protected*, *Couldn't empty bucket*, or *Empty bucket cancelled*) and can be dismissed.

> **Warning**
>
> **Empty bucket isn't available for every bucket.** It is blocked for buckets with **Object Lock** enabled, and for buckets with **Versioning** enabled. Delete objects in those buckets with an S3-compatible client instead.

## Delete a bucket

**Delete bucket** sits in the **Danger Zone** on the **General** tab. You can also delete an empty bucket from the bucket list.

> **Warning**
>
> **Only empty buckets can be deleted.** If the bucket still contains objects, **Delete bucket** is disabled and the card reads *"This bucket contains X objects. Empty it first to delete."* — use [Empty bucket](#empty-a-bucket) first.

Click **Delete bucket**, then confirm with **Delete**. *This action cannot be undone.*

> **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)