# Storage (/docs/storage) > For the complete Prisma documentation index, see [llms.txt](https://www.prisma.io/docs/llms.txt). A markdown version of any docs page is available by appending `.md` to its URL. S3-compatible object-store buckets that live inside your Prisma project. Location: Storage Object Store buckets are S3-compatible file storage that lives inside a Prisma project, next to its Prisma Postgres databases and Compute apps. You manage buckets from the [Console](https://console.prisma.io/?utm_source=docs\&utm_medium=content\&utm_content=storage), the [CLI](https://www.prisma.io/docs/cli/bucket), or the [REST API](https://www.prisma.io/docs/rest-api/endpoints/buckets/get-buckets); your app reads and writes objects with any S3 client or SDK. A bucket belongs to a project. At creation you can associate it with a branch (by branch ID or git branch name); omit both and it attaches to the project's default branch. Projects start with no buckets. ## Names [#names] A bucket has two names: 1. A display name you choose (1-100 characters, auto-generated when omitted). It appears in the Console, CLI, and API. 2. A provider-assigned S3 bucket name, returned as `providerName` by the API and as `bucketName` with new access keys. This is the value S3 clients use. It is opaque and never derived from the display name. There is no rename: the API has no update endpoint for buckets. ## Access keys [#access-keys] Access is through bucket-scoped access keys. A key has a role, `read` or `read_write`; a write with a `read` key fails with `AccessDenied`. Keys are scoped to their bucket only: a leaked key cannot reach any other bucket. Creating a key returns everything an S3 client needs: `accessKeyId`, `secretAccessKey`, `endpoint`, and `bucketName`. The `secretAccessKey` is returned exactly once and never stored; copy it immediately. If you lose it, revoke the key and create a new one. Deleting a key revokes it immediately. Use the `endpoint` value returned with the key rather than hardcoding a host. ## Using a bucket from your app [#using-a-bucket-from-your-app] Any S3 client or SDK works. On [Prisma Compute](https://www.prisma.io/docs/compute), Bun's built-in S3 client reads `S3_ENDPOINT`, `S3_BUCKET`, `S3_ACCESS_KEY_ID`, and `S3_SECRET_ACCESS_KEY` from the environment, so uploads and presigned GET URLs work with no explicit client configuration. See [Object storage on Compute](https://www.prisma.io/docs/compute/object-storage) for a worked example, and [Object storage in Composer](https://www.prisma.io/docs/composer/object-storage) for the declarative `bucket()` resource with local stand-in buckets in `dev`. For using buckets during development, see [Local storage](https://www.prisma.io/docs/local-development/storage). ## Managing buckets [#managing-buckets] From the CLI (see the [`bucket` reference](https://www.prisma.io/docs/cli/bucket) for details): #### bun ```bash bunx prisma bucket create --name my-bucket bunx prisma bucket key create ``` #### pnpm ```bash pnpm prisma bucket create --name my-bucket pnpm prisma bucket key create ``` #### yarn ```bash yarn prisma bucket create --name my-bucket yarn prisma bucket key create ``` #### npm ```bash npx prisma bucket create --name my-bucket npx prisma bucket key create ``` | Command | Purpose | | ---------------------------------------- | ------------------------------------------------------- | | `bucket list` | List object-store buckets | | `bucket create` | Create a bucket (`--name` sets the display name) | | `bucket delete ` | Delete a bucket and all its access keys | | `bucket key list ` | List access keys for a bucket | | `bucket key create ` | Create an access key and print its one-time credentials | | `bucket key delete ` | Revoke and delete an access key | The [REST API](https://www.prisma.io/docs/rest-api/endpoints/buckets/get-buckets) exposes the same operations: list, create, get, and delete buckets, and list, create, and delete access keys. Bucket creation is synchronous; the response comes back with `"status": "ready"`. The Prisma MCP server also carries bucket tools (`list_object_store_buckets`, `create_object_store_bucket`, `delete_object_store_bucket`, `create_object_store_bucket_key`, `delete_object_store_bucket_key`) for AI agents. In the Console, each bucket has a file browser with upload, download, and per-object delete, a keys page with a reveal-once credentials dialog, and a settings page for deletion with type-the-name confirmation. ## Deleting a bucket [#deleting-a-bucket] Deleting a bucket permanently removes the bucket, all objects stored in it, and all its access keys in one call. It succeeds on a non-empty bucket and cannot be undone. ## Pricing [#pricing] Bucket pricing and plan limits are not published yet. ## Related pages - [`Choose a Prisma ORM setup path`](https://www.prisma.io/docs/getting-started): Choose the fastest path to try Prisma ORM in a new or existing project. - [`Console`](https://www.prisma.io/docs/console): Learn how to use the Console to manage and integrate Prisma products into your application. - [`Introduction to Prisma ORM`](https://www.prisma.io/docs/prisma-orm): Prisma ORM 8 is the current release. - [`Local development`](https://www.prisma.io/docs/local-development): Run the whole Prisma stack on your machine, with your app on Bun, a local Prisma Postgres database, and local object storage. - [`Overview`](https://www.prisma.io/docs/cli): Prisma CLI reference