> 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.

# Upload Your First Object

> Create your first bucket, generate API credentials, and upload an object — using the IBEE Solutions portal and an S3-compatible client.

This guide walks through creating a bucket, generating API credentials, and uploading your first object — first from the portal, then from the AWS CLI.

## Before you begin

* An active IBEE Solutions organization with a verified account
* (Optional) The [AWS CLI](https://docs.aws.amazon.com/cli/) installed locally if you want to upload programmatically

## 1. Create a bucket

In the portal, click **Object Storage** in the left sidebar under **Products**, then click **+ Create Bucket** at the top right of the Object Storage page.

Fill in the **Create Bucket** dialog:

| Field                | Value                                                                                                                    |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **Bucket Name**      | 3–63 characters, lowercase letters, numbers, and hyphens only (e.g. `my-first-bucket`).                                  |
| **Location**         | **Automatic** (Asia Pacific) for the closest available region, or **Specify jurisdiction** to pin to a specific country. |
| **Storage Type**     | `Standard`.                                                                                                              |
| **Advanced options** | Optional. Enable **Object Lock** here if you need immutability — it cannot be added later.                               |

Click **Create Bucket**. A confirmation toast appears: *"Bucket created successfully"* and the bucket appears in the list.

See [Buckets](/docs/infrastructure/object-storage/buckets) for the full create-bucket reference.

## 2. Upload an object from the portal

Click your new bucket from the Object Storage list to open it. The bucket page has three tabs: **Objects**, **Metrics**, **Settings**.

On the **Objects** tab, click **Upload** in the top right. Drag and drop a file onto the upload area, or click **Select Files**.

The uploaded object appears in the list with its **Type**, **Storage Class**, **Size**, and **Modified** date.

> **Info**
>
> The portal accepts files up to **300 MB** each. Upload larger files with an S3-compatible client (step 4), which uses multipart upload automatically.

See [Objects](/docs/infrastructure/object-storage/objects) for full upload, download, and detail-page reference.

## 3. Create API credentials

For S3-compatible tools you need an **S3 credential** for the workspace that holds your bucket.

In the portal sidebar, click **API Tokens** under **Organization**, open the **S3 Credentials** tab, and click **Create S3 Credential**. (On the Object Storage page, the **S3 API Credentials** button takes you to the same tab.)

Give the credential a **Name**, select the **Workspace**, and choose a permission level (e.g. **Admin Read & Write**). For **Object Read & Write** or **Object Read only**, also pick **Apply to all buckets in the selected workspace** or **Apply to specific buckets only**.

Click **Create Credential** and copy the values immediately — the **Secret Access Key** is shown only once:

| Credential        | Use                                                                  |
| ----------------- | -------------------------------------------------------------------- |
| Access Key ID     | S3-compatible tools                                                  |
| Secret Access Key | S3-compatible tools — shown once, copy now                           |
| S3 Endpoint       | The workspace endpoint, `https://{workspaceId}.blob.ibeestorage.com` |

See [API Credentials](/docs/infrastructure/object-storage/api-tokens) for rotation, scoping, and revoke.

## 4. Upload from the AWS CLI

Configure a profile with your credentials:

```bash
aws configure --profile ibee
# AWS Access Key ID:     AKIA...
# AWS Secret Access Key: <your-secret-access-key>
# Default region:        us-east-1
# Default output:        json
```

Upload an object:

```bash
echo "hello, IBEE" > hello.txt

aws --endpoint-url https://{workspaceId}.blob.ibeestorage.com \
    --profile ibee \
    s3 cp hello.txt s3://my-first-bucket/
```

Verify and download:

```bash
# List
aws --endpoint-url https://{workspaceId}.blob.ibeestorage.com \
    --profile ibee \
    s3 ls s3://my-first-bucket/

# Download
aws --endpoint-url https://{workspaceId}.blob.ibeestorage.com \
    --profile ibee \
    s3 cp s3://my-first-bucket/hello.txt ./hello-copy.txt
```

## Next steps

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

Make a bucket public, scope access by API token.

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

Automate object expiry and storage-class transitions.

#### [Presigned URLs](/docs/infrastructure/object-storage/objects/presigned-urls)

Share time-limited links for upload or download.

#### [Mount a Bucket as a Filesystem](/docs/infrastructure/object-storage/mount-a-bucket-as-a-filesystem)

Use a bucket like a local directory with `s3fs` or `rclone`.