# Create Public Container(Bucket) and Add Files

> 1. Navigate to `Project > Storage > Object Storage`, select `+ CREATE CONTAINER`

## Create Bucket {#create-bucket}

1. Navigate to `Project > Storage > Object Storage`, select `+ CREATE CONTAINER`

   ![/assets/s3/bucket_1.png](/assets/s3/bucket_1.png)

2. Name the container and set Public Access to `ON` by toggle it. Click `OK` to proceed.

   ![/assets/s3/bucket_2.png](/assets/s3/bucket_2.png)

3. Click the container just created.

   ![/assets/s3/bucket_3.png](/assets/s3/bucket_3.png)

4. Within the container, you can choose to `Create Folder` or `Upload File`.

   _Demonstration below will create a folder and upload a file in it_

   ![/assets/s3/bucket_4.png](/assets/s3/bucket_4.png)

5. To create a new folder, select the `+ Create Folder` button. Name the folder and click `OK`.

   ![/assets/s3/bucket_5.png](/assets/s3/bucket_5.png)

6. Click on the newly created folder.

   ![/assets/s3/bucket_6.png](/assets/s3/bucket_6.png)

7. To upload a new file, select the `+ Upload File` button. Upload desired files and click `OK`.

   ![/assets/s3/bucket_7.png](/assets/s3/bucket_7.png)

8. To verify the upload, navigate to the dashboard and confirm that the file appears in the list.

   ![/assets/s3/bucket_8.png](/assets/s3/bucket_8.png)

## Swift API {#swift-api}

1. Obtain the `Auth Token` by accessing CubeCOS cluster VIP via SSH. Use command `swift -v stat <container_name>`

```bash
[cc1 ~]# swift -v stat demo-container
   URL: http://172.16.0.10:8888/swift/v1/c0978a86e3b242da9ba549acf5178266/demo-container
   Auth Token: gAAAAABoFW_tJ9w8jM8UOPtjgDYbgmEotngLx2JPn-6SKFtQ4Dyc9C1nNP6U-5Unto1AEvllmhiH0SCUxgovGQc_V6TpILw9blS3OsClS1icyE6qZfZRHRs8Ej8LDfgxZ9y8CnC0TMUjklFISs06jBAGjzzGtESzChh9sWnp7AcuXrvaq63i0Q8
   Account: c0978a86e3b242da9ba549acf5178266
   Container: demo-container
   Objects: 2
   Bytes: 31471
   Read ACL: .r:*,.rlistings
   Write ACL:
   Sync To:
   Sync Key:
   X-Timestamp: 1746168693.62838
   X-Container-Bytes-Used-Actual: 32768
   X-Storage-Policy: default-placement
   X-Storage-Class: STANDARD
   Cache-Control: no-cache
   Last-Modified: Fri, 02 May 2025 06:51:34 GMT
   X-Trans-Id: tx00000eb28d971e117f44d-0068156fed-1525fe-default
   X-Openstack-Request-Id: tx00000eb28d971e117f44d-0068156fed-1525fe-default
   Accept-Ranges: bytes
   Content-Type: text/plain; charset=utf-8
   Connection: Keep-Alive
```

2. Verify Swift API access with postman, add header : \{ key = "X-Auth-Token", value = "Auth Token" from above \} with GET action.

   _URL shown at step 1 is bucket URL. Fetching it will get its file tree. Add folder and file structure to get specific file._

   ![/assets/s3/bucket_9.png](/assets/s3/bucket_9.png)
   ![/assets/s3/bucket_10.png](/assets/s3/bucket_10.png)
