Tigris Bucket Management
Quick Reference
| Command | Description |
|---|
| Create a bucket (or folder with trailing ) |
| List all buckets |
tigris buckets get <name>
| Inspect bucket details |
tigris buckets delete <name>
| Delete a bucket |
tigris buckets set <name>
| Update bucket settings |
tigris buckets set-ttl <name>
| Configure object expiration |
tigris buckets set-locations <name>
| Set data locations |
tigris buckets set-migration <name>
| Configure shadow bucket migration |
tigris buckets set-transition <name>
| Configure storage class transitions |
tigris buckets set-notifications <name>
| Configure event webhooks |
tigris buckets set-cors <name>
| Configure CORS rules |
tigris snapshots list <bucket>
| List bucket snapshots |
tigris snapshots take <bucket>
| Take a snapshot |
Create a Bucket
(alias: )
Create a bucket (bare name) or a folder inside a bucket (trailing
). Supports
and
URI prefixes.
bash
tigris mk my-bucket
tigris mk my-bucket --access public --locations iad
tigris mk my-bucket/images/ # creates a folder
tigris mk t3://my-bucket
tigris mk my-fork --fork-of my-bucket
tigris mk my-fork --fork-of my-bucket --source-snapshot 1765889000501544464
tigris buckets create <name>
(alias: )
Same as
but under the
subcommand.
bash
tigris buckets create my-bucket
tigris buckets create my-bucket --access public --locations iad
tigris buckets create my-bucket --enable-snapshots --default-tier STANDARD_IA
tigris buckets create my-fork --fork-of my-bucket
tigris buckets create my-fork --fork-of my-bucket --source-snapshot 1765889000501544464
Flags:
| Flag | Alias | Description | Default |
|---|
| | Access level (, ) | |
| | Shorthand for | |
| | Bucket location (see Locations) | |
| | Default storage tier (see Storage Tiers) | |
| | Enable snapshots for the bucket | |
| | Create as a fork (copy-on-write clone) of the named source bucket | |
| | Fork from a specific snapshot (requires ) | |
| | Output format (, ) | |
| | Output as JSON | |
| | (Deprecated) Use instead | |
| | (Deprecated) Use instead | |
List Buckets
(alias: )
List all buckets in the current organization.
bash
tigris buckets list
tigris buckets list --json
tigris buckets list --forks-of my-bucket
| Flag | Description |
|---|
| Only list buckets that are forks of the named source bucket |
| / | Output format (, , ; default: ) |
| Output as JSON |
Inspect a Bucket
tigris buckets get <name>
(alias: )
Show details for a bucket including access level, region, tier, and custom domain.
bash
tigris buckets get my-bucket
tigris buckets get my-bucket --json
| Flag | Description |
|---|
| / | Output format (, , ; default: ) |
| Output as JSON |
Delete a Bucket
tigris buckets delete <name>
(alias: )
Delete one or more buckets by name. Accepts comma-separated names.
bash
tigris buckets delete my-bucket --force
tigris buckets delete bucket-a,bucket-b --force
| Flag | Description |
|---|
| Skip confirmation prompt |
| / | Output format (, ; default: ) |
| Output as JSON |
Update Bucket Settings
tigris buckets set <name>
(alias: )
Update settings on an existing bucket.
bash
tigris buckets set my-bucket --access public
tigris buckets set my-bucket --locations iad,fra --cache-control 'max-age=3600'
tigris buckets set my-bucket --custom-domain assets.example.com
| Flag | Description |
|---|
| Bucket access level (, ) |
| Bucket locations (see Locations) |
--enable-delete-protection
| Enable delete protection (/) |
| Default cache-control header value |
| Custom domain for the bucket |
| Enable object-level ACL (/) |
--disable-directory-listing
| Disable directory listing (/) |
--enable-additional-headers
| Enable additional HTTP headers like X-Content-Type-Options: nosniff
(/) |
| (Deprecated) Use instead |
| Output format (, ; default: ) |
| Output as JSON |
Bucket Configuration Commands
tigris buckets set-ttl <name>
Configure object expiration (TTL) on a bucket.
bash
tigris buckets set-ttl my-bucket --days 30
tigris buckets set-ttl my-bucket --date 2026-06-01
tigris buckets set-ttl my-bucket --disable
| Flag | Alias | Description |
|---|
| | Expire objects after this many days |
| | Expire objects on this date (ISO-8601, e.g. ) |
| | Enable TTL (uses existing lifecycle rules) |
| | Disable TTL on the bucket |
tigris buckets set-locations <name>
Set the data locations for a bucket.
bash
tigris buckets set-locations my-bucket --locations iad
tigris buckets set-locations my-bucket --locations iad,fra
tigris buckets set-locations my-bucket --locations global
| Flag | Alias | Description |
|---|
| | Bucket location(s) — comma-separated (see Locations) |
tigris buckets set-migration <name>
Configure data migration from an external S3-compatible source bucket. Tigris pulls objects on demand from the source (shadow bucket pattern).
bash
tigris buckets set-migration my-bucket \
--bucket source-bucket \
--endpoint https://s3.amazonaws.com \
--region us-east-1 \
--access-key AKIA... \
--secret-key wJal...
# Enable write-through (writes go to both source and Tigris)
tigris buckets set-migration my-bucket \
--bucket source-bucket \
--endpoint https://s3.amazonaws.com \
--region us-east-1 \
--access-key AKIA... \
--secret-key wJal... \
--write-through
# Disable migration
tigris buckets set-migration my-bucket --disable
Migration workflow: Point Tigris at your existing S3-compatible bucket. Tigris serves objects on demand — when a request hits Tigris and the object isn't cached yet, it fetches from the source. Over time, all accessed objects are pulled into Tigris. Use
to also push new writes back to the source during migration.
| Flag | Alias | Description |
|---|
| | Name of the source bucket to migrate from |
| | Endpoint URL of the source S3-compatible service |
| | Region of the source bucket |
| | Access key for the source bucket |
| | Secret key for the source bucket |
| | Enable write-through mode |
| | Disable migration and clear all migration settings |
tigris buckets set-transition <name>
Configure a lifecycle transition rule. Automatically move objects to a different storage class after a number of days or on a specific date.
bash
tigris buckets set-transition my-bucket --storage-class STANDARD_IA --days 30
tigris buckets set-transition my-bucket --storage-class GLACIER --date 2026-06-01
tigris buckets set-transition my-bucket --enable
tigris buckets set-transition my-bucket --disable
| Flag | Alias | Description |
|---|
| | Target storage class (, , ) |
| | Transition objects after this many days |
| | Transition objects on this date (ISO-8601) |
| | Enable lifecycle transition rules |
| | Disable lifecycle transition rules |
tigris buckets set-notifications <name>
Configure object event notifications. Sends webhook requests to a URL when objects are created, updated, or deleted.
bash
tigris buckets set-notifications my-bucket --url https://example.com/webhook
tigris buckets set-notifications my-bucket --url https://example.com/webhook --token secret123
tigris buckets set-notifications my-bucket --url https://example.com/webhook --username admin --password secret
tigris buckets set-notifications my-bucket --url https://example.com/webhook --filter 'WHERE `key` REGEXP "^images"'
tigris buckets set-notifications my-bucket --enable
tigris buckets set-notifications my-bucket --disable
tigris buckets set-notifications my-bucket --reset
| Flag | Alias | Description |
|---|
| | Webhook URL (must be or ) |
| | SQL WHERE clause to filter events by key |
| | Token for webhook authentication |
| | Username for basic webhook authentication |
| | Password for basic webhook authentication |
| | Enable notifications (uses existing config) |
| | Disable notifications (preserves existing config) |
| | Clear all notification settings |
tigris buckets set-cors <name>
Configure CORS rules on a bucket. Each invocation adds a rule unless
or
is used.
bash
tigris buckets set-cors my-bucket --origins '*' --methods GET,HEAD
tigris buckets set-cors my-bucket --origins https://example.com --methods GET,POST --headers Content-Type,Authorization --max-age 3600
tigris buckets set-cors my-bucket --origins https://example.com --override
tigris buckets set-cors my-bucket --reset
| Flag | Alias | Description |
|---|
| | Allowed origins (comma-separated, or for all) |
| | Allowed HTTP methods (comma-separated) |
| | Allowed request headers (comma-separated, or ) |
| | Response headers to expose (comma-separated) |
| | Preflight cache duration in seconds (default: ) |
| | Replace all existing CORS rules instead of appending |
| | Clear all CORS rules |
Snapshots
Snapshots are point-in-time, read-only copies of a bucket's state. The bucket must be created with
.
tigris snapshots list <bucket>
(alias: )
List all snapshots for a bucket, ordered by creation time.
bash
tigris snapshots list my-bucket
tigris snapshots list my-bucket --json
| Flag | Description |
|---|
| / | Output format (, , ; default: ) |
| Output as JSON |
tigris snapshots take <bucket> [name]
(alias: )
Take a new snapshot of the bucket's current state. Optionally provide a name.
bash
tigris snapshots take my-bucket
tigris snapshots take my-bucket my-snapshot
Forks
Forks are copy-on-write clones of a bucket. They are instant, free, and isolated — writes to the fork do not affect the source bucket.
Create a fork
bash
# Preferred: use mk or buckets create with --fork-of
tigris mk my-fork --fork-of my-bucket
tigris mk my-fork --fork-of my-bucket --source-snapshot 1765889000501544464
# Equivalent via buckets create
tigris buckets create my-fork --fork-of my-bucket
tigris buckets create my-fork --fork-of my-bucket --source-snapshot 1765889000501544464
List forks
bash
tigris buckets list --forks-of my-bucket
Deprecated commands: and
still work but are deprecated. Use
tigris buckets list --forks-of
and
instead.
Reference Tables
Storage Tiers
| Tier | Value | Description |
|---|
| Standard | | Default. High durability, availability, and performance for frequently accessed data |
| Infrequent Access | | Lower-cost for data accessed less frequently but requiring rapid access when needed |
| Archive | | Low-cost for long-term data archiving with infrequent access |
| Instant Retrieval Archive | | Lowest-cost for long-lived, rarely accessed data requiring retrieval in milliseconds |
Locations
| Name | Value | Description |
|---|
| Global | | Global (default) |
| USA | | Restrict to USA |
| Europe | | Restrict to Europe |
| Amsterdam | | Amsterdam, Netherlands |
| Frankfurt | | Frankfurt, Germany |
| Sao Paulo | | Sao Paulo, Brazil |
| Ashburn | | Ashburn, Virginia (US) |
| Johannesburg | | Johannesburg, South Africa |
| London | | London, United Kingdom |
| Tokyo | | Tokyo, Japan |
| Chicago | | Chicago, Illinois (US) |
| Singapore | | Singapore, Singapore |
| San Jose | | San Jose, California (US) |
| Sydney | | Sydney, Australia |
Consistency Levels (deprecated — use instead)
| Level | Value | Description |
|---|
| Default | | Strict read-after-write in same region, eventual consistency globally |
| Strict | | Strict read-after-write globally (higher latency) |