Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 18 additions & 6 deletions docs/buckets/public-bucket.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,28 @@ Now, anyone can read this file without authentication.

### Public bucket domains

Every public bucket is automatically served over three Tigris-managed domains.
Using `foo-public-bucket` as an example, the bucket is accessible at:
Every public bucket is automatically served over several dedicated public
content domains. Using `foo-public-bucket` as an example, the bucket is
accessible at:

| Domain | Example URL |
| -------------------------------- | ------------------------------------------------------ |
| `BUCKET_NAME.t3.tigrisblob.io` | `https://foo-public-bucket.t3.tigrisblob.io/bar.txt` |
| `BUCKET_NAME.t3.tigrisfiles.io` | `https://foo-public-bucket.t3.tigrisfiles.io/bar.txt` |
| `BUCKET_NAME.t3.tigrisbucket.io` | `https://foo-public-bucket.t3.tigrisbucket.io/bar.txt` |
| `BUCKET_NAME.t3.tigrisblob.io` | `https://foo-public-bucket.t3.tigrisblob.io/bar.txt` |

All three domains serve the same content without authentication and are
interchangeable.

All three domains serve the same content and are interchangeable.
:::info[Existing Fly.io accounts]

Existing Fly.io accounts can also access public content at
`BUCKET_NAME.fly.storage.tigris.dev`. This continues to work but is not
available for new accounts. We recommend setting up a
[custom domain](#custom-domain) for production use regardless of which domain
you currently use.

:::

:::warning

Expand Down Expand Up @@ -133,6 +145,6 @@ gives you:
your bucket name contains dots.

To set up a custom domain, create a CNAME record pointing your domain to
`foo-public-bucket.t3.storage.dev` and then configure the domain in your bucket
settings. See the [Custom Domains](./custom-domain.md) guide for full
`foo-public-bucket.t3.tigrisbucket.io` and then configure the domain in your
bucket settings. See the [Custom Domains](./custom-domain.md) guide for full
instructions.
33 changes: 32 additions & 1 deletion docs/sdks/fly/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,37 @@ By default, buckets are private. You can create a public bucket by passing the
fly storage create --public
```

### Accessing objects in a public bucket

Objects in a public bucket can be read by anyone without authentication. Public
content is served from dedicated domains using the bucket name as a subdomain:

- `https://bucket-name.t3.tigrisfiles.io/key-name` (primary)
- `https://bucket-name.t3.tigrisbucket.io/key-name`
- `https://bucket-name.t3.tigrisblob.io/key-name`

For example, if you created a public bucket called `my-assets` and uploaded
`logo.png`, anyone can access it at:

```text
https://my-assets.t3.tigrisfiles.io/logo.png
```

No credentials or signed URLs are needed — the URL works directly in a browser,
`curl`, `wget`, `<img>` tags, etc.

:::info

Existing Fly.io accounts can also access public content at
`bucket-name.fly.storage.tigris.dev`. This continues to work but is not
available for new accounts.

:::

For production use, we recommend setting up a
[custom domain](/docs/buckets/custom-domain/) so your public URLs stay stable.
See the [Public Bucket](/docs/buckets/public-bucket/) guide for full details.

### Updating bucket public access

You can make a private bucket public or a public bucket private by using the
Expand All @@ -89,7 +120,7 @@ flyctl storage update bucket-name --custom-domain images.example.com
```

For this to work, you need to create a CNAME record for `images.example.com`
that points to `bucket-name.fly.storage.tigris.dev`.
that points to `bucket-name.t3.tigrisbucket.io`.

### Remove the custom domain

Expand Down
Loading