tigris-buckets
Tigris Bucket Management
Quick Reference
| Command | Description |
|---|---|
tigris mk <name> |
Create a bucket (or folder with trailing /) |
tigris buckets list |
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
tigris mk <path> (alias: create)
Create a bucket (bare name) or a folder inside a bucket (trailing /). Supports t3:// and tigris:// URI prefixes.
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: c)
Same as mk but under the buckets subcommand.
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 |
-a |
Access level (public, private) |
private |
--public |
Shorthand for --access public |
||
--locations |
-l |
Bucket location (see Locations) | global |
--default-tier |
-t |
Default storage tier (see Storage Tiers) | STANDARD |
--enable-snapshots |
-s |
Enable snapshots for the bucket | false |
--fork-of |
--fork |
Create as a fork (copy-on-write clone) of the named source bucket | |
--source-snapshot |
--source-snap |
Fork from a specific snapshot (requires --fork-of) |
|
--format |
-f |
Output format (json, table) |
table |
--json |
Output as JSON | ||
--consistency |
-c |
(Deprecated) Use --locations instead |
|
--region |
-r |
(Deprecated) Use --locations instead |
List Buckets
tigris buckets list (alias: l)
List all buckets in the current organization.
tigris buckets list
tigris buckets list --json
tigris buckets list --forks-of my-bucket
| Flag | Description |
|---|---|
--forks-of |
Only list buckets that are forks of the named source bucket |
--format / -f |
Output format (json, table, xml; default: table) |
--json |
Output as JSON |
Inspect a Bucket
tigris buckets get <name> (alias: g)
Show details for a bucket including access level, region, tier, and custom domain.
tigris buckets get my-bucket
tigris buckets get my-bucket --json
| Flag | Description |
|---|---|
--format / -f |
Output format (json, table, xml; default: table) |
--json |
Output as JSON |
Delete a Bucket
tigris buckets delete <name> (alias: d)
Delete one or more buckets by name. Accepts comma-separated names.
tigris buckets delete my-bucket --force
tigris buckets delete bucket-a,bucket-b --force
| Flag | Description |
|---|---|
--force |
Skip confirmation prompt |
--format / -f |
Output format (json, table; default: table) |
--json |
Output as JSON |
Update Bucket Settings
tigris buckets set <name> (alias: s)
Update settings on an existing bucket.
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 |
|---|---|
--access |
Bucket access level (public, private) |
--locations |
Bucket locations (see Locations) |
--enable-delete-protection |
Enable delete protection (true/false) |
--cache-control |
Default cache-control header value |
--custom-domain |
Custom domain for the bucket |
--allow-object-acl |
Enable object-level ACL (true/false) |
--disable-directory-listing |
Disable directory listing (true/false) |
--enable-additional-headers |
Enable additional HTTP headers like X-Content-Type-Options: nosniff (true/false) |
--region |
(Deprecated) Use --locations instead |
--format |
Output format (json, table; default: table) |
--json |
Output as JSON |
Bucket Configuration Commands
tigris buckets set-ttl <name>
Configure object expiration (TTL) on a bucket.
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 |
|---|---|---|
--days |
-d |
Expire objects after this many days |
--date |
Expire objects on this date (ISO-8601, e.g. 2026-06-01) |
|
--enable |
Enable TTL (uses existing lifecycle rules) | |
--disable |
Disable TTL on the bucket |
tigris buckets set-locations <name>
Set the data locations for a bucket.
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 |
|---|---|---|
--locations |
-l |
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).
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 --write-through to also push new writes back to the source during migration.
| Flag | Alias | Description |
|---|---|---|
--bucket |
-b |
Name of the source bucket to migrate from |
--endpoint |
-e |
Endpoint URL of the source S3-compatible service |
--region |
-r |
Region of the source bucket |
--access-key |
--key |
Access key for the source bucket |
--secret-key |
--secret |
Secret key for the source bucket |
--write-through |
Enable write-through mode | |
--disable |
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.
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 |
|---|---|---|
--storage-class |
-s |
Target storage class (STANDARD_IA, GLACIER, GLACIER_IR) |
--days |
-d |
Transition objects after this many days |
--date |
Transition objects on this date (ISO-8601) | |
--enable |
Enable lifecycle transition rules | |
--disable |
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.
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 |
|---|---|---|
--url |
-u |
Webhook URL (must be http or https) |
--filter |
-f |
SQL WHERE clause to filter events by key |
--token |
-t |
Token for webhook authentication |
--username |
Username for basic webhook authentication | |
--password |
Password for basic webhook authentication | |
--enable |
Enable notifications (uses existing config) | |
--disable |
Disable notifications (preserves existing config) | |
--reset |
Clear all notification settings |
tigris buckets set-cors <name>
Configure CORS rules on a bucket. Each invocation adds a rule unless --override or --reset is used.
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 |
|---|---|---|
--origins |
-o |
Allowed origins (comma-separated, or * for all) |
--methods |
-m |
Allowed HTTP methods (comma-separated) |
--headers |
Allowed request headers (comma-separated, or *) |
|
--expose-headers |
Response headers to expose (comma-separated) | |
--max-age |
Preflight cache duration in seconds (default: 3600) |
|
--override |
Replace all existing CORS rules instead of appending | |
--reset |
Clear all CORS rules |
Snapshots
Snapshots are point-in-time, read-only copies of a bucket's state. The bucket must be created with --enable-snapshots.
tigris snapshots list <bucket> (alias: l)
List all snapshots for a bucket, ordered by creation time.
tigris snapshots list my-bucket
tigris snapshots list my-bucket --json
| Flag | Description |
|---|---|
--format / -f |
Output format (json, table, xml; default: table) |
--json |
Output as JSON |
tigris snapshots take <bucket> [name] (alias: t)
Take a new snapshot of the bucket's current state. Optionally provide a name.
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
# 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
tigris buckets list --forks-of my-bucket
Deprecated commands:
tigris forks listandtigris forks createstill work but are deprecated. Usetigris buckets list --forks-ofandtigris mk --fork-ofinstead.
Reference Tables
Storage Tiers
| Tier | Value | Description |
|---|---|---|
| Standard | STANDARD |
Default. High durability, availability, and performance for frequently accessed data |
| Infrequent Access | STANDARD_IA |
Lower-cost for data accessed less frequently but requiring rapid access when needed |
| Archive | GLACIER |
Low-cost for long-term data archiving with infrequent access |
| Instant Retrieval Archive | GLACIER_IR |
Lowest-cost for long-lived, rarely accessed data requiring retrieval in milliseconds |
Locations
| Name | Value | Description |
|---|---|---|
| Global | global |
Global (default) |
| USA | usa |
Restrict to USA |
| Europe | eur |
Restrict to Europe |
| Amsterdam | ams |
Amsterdam, Netherlands |
| Frankfurt | fra |
Frankfurt, Germany |
| Sao Paulo | gru |
Sao Paulo, Brazil |
| Ashburn | iad |
Ashburn, Virginia (US) |
| Johannesburg | jnb |
Johannesburg, South Africa |
| London | lhr |
London, United Kingdom |
| Tokyo | nrt |
Tokyo, Japan |
| Chicago | ord |
Chicago, Illinois (US) |
| Singapore | sin |
Singapore, Singapore |
| San Jose | sjc |
San Jose, California (US) |
| Sydney | syd |
Sydney, Australia |
Consistency Levels (deprecated — use --locations instead)
| Level | Value | Description |
|---|---|---|
| Default | default |
Strict read-after-write in same region, eventual consistency globally |
| Strict | strict |
Strict read-after-write globally (higher latency) |