tigris-bucket-management

Original🇺🇸 English
Translated

Use when creating, listing, inspecting, or deleting Tigris Storage buckets

12installs
Added on

NPX Install

npx skill4agent add tigrisdata/skills tigris-bucket-management

Tags

Translated version includes tags in frontmatter

Tigris Bucket Management

Overview

Buckets are containers for objects. This skill covers bucket lifecycle: create, list, inspect, and delete.

Quick Reference

OperationFunctionKey Parameters
Create
createBucket(name, options)
name, access, region, enableSnapshot
List
listBuckets(options)
limit, paginationToken
Inspect
getBucketInfo(name)
bucketName
Delete
removeBucket(name, options)
bucketName, force

Create Bucket

typescript
import { createBucket } from "@tigrisdata/storage";

// Simple private bucket
const result = await createBucket("my-new-bucket");
if (result.error) {
  console.error("Error:", result.error);
} else {
  console.log("Created:", result.data);
}

// Public bucket (objects readable by anyone)
const result = await createBucket("public-assets", {
  access: "public",
});

// Snapshot-enabled bucket (for version control)
const result = await createBucket("my-snapshot-bucket", {
  enableSnapshot: true,
});

// Regional bucket
const result = await createBucket("eu-data", {
  region: "eu",
});

// Fork from existing bucket snapshot
const result = await createBucket("my-forked-bucket", {
  sourceBucketName: "parent-bucket",
  sourceBucketSnapshot: "1751631910169675092",
});

Create Bucket Options

OptionValuesDefaultPurpose
accesspublic/privateprivateObject readability
consistencydefault/strictdefaultRead consistency level
defaultTierSTANDARD/STANDARD_IA/GLACIER/GLACIER_IRSTANDARDDefault storage tier
enableSnapshotbooleanfalseEnable snapshots/forking
regionstringglobalBucket region
sourceBucketNamestring-Fork from this bucket
sourceBucketSnapshotstring-Fork from this snapshot
Note: Snapshot-enabled buckets must use STANDARD tier.

List Buckets

typescript
import { listBuckets } from "@tigrisdata/storage";

// List all buckets
const result = await listBuckets();
if (result.error) {
  console.error("Error:", result.error);
} else {
  console.log("Buckets:", result.data?.buckets);
  console.log("Owner:", result.data?.owner);
}

// Paginated list
const allBuckets = [];
let currentPage = await listBuckets({ limit: 10 });
allBuckets.push(...currentPage.data?.buckets);

while (currentPage.data?.paginationToken) {
  currentPage = await listBuckets({
    limit: 10,
    paginationToken: currentPage.data?.paginationToken,
  });
  allBuckets.push(...currentPage.data?.buckets);
}

Get Bucket Info

typescript
import { getBucketInfo } from "@tigrisdata/storage";

const result = await getBucketInfo("my-bucket");
if (result.error) {
  console.error("Error:", result.error);
} else {
  console.log("Info:", result.data);
  // {
  //   isSnapshotEnabled: true,
  //   hasForks: false,
  //   sourceBucketName: undefined,
  //   sourceBucketSnapshot: undefined
  // }
}

Delete Bucket

typescript
import { removeBucket } from "@tigrisdata/storage";

// Delete empty bucket
const result = await removeBucket("my-bucket");
if (result.error) {
  console.error("Error:", result.error);
} else {
  console.log("Deleted successfully");
}

// Force delete (even if not empty)
const result = await removeBucket("my-bucket", {
  force: true,
});
Warning: Force delete is irreversible. All objects will be lost.

Bucket Access Levels

LevelBehaviorUse Case
privateObjects require authDefault, sensitive data
publicObjects publicly readableStatic assets, public content

Consistency Levels

LevelBehaviorTrade-off
defaultLow latency, eventual consistencyMost workloads
strictStrong consistency, higher latencyCritical data

Storage Tiers

TierUse CaseCost
STANDARDGeneral purposeStandard
STANDARD_IAInfrequently accessedLower cost
GLACIERLong-term archiveLowest cost
GLACIER_IRRare access, fast retrievalArchive with occasional access

Regions

Specify region for data locality or compliance:
typescript
await createBucket("data-eu", { region: "eu" });
await createBucket("data-asia", { region: "asia-south-1" });
Leave empty for global bucket (recommended for most use cases).

Common Mistakes

MistakeFix
Enable snapshot with non-STANDARD tierSnapshot requires STANDARD tier
Not checking bucket exists before deleteUse
getBucketInfo
first
Trying to delete non-empty bucket without forceUse
force: true
or empty bucket first
Name conflictsBucket names must be globally unique

Forking and Snapshots

For version control (snapshots/forking), see the tigris-snapshots-forking skill.

Prerequisites

Before managing buckets, ensure @tigrisdata/storage is installed. See installing-tigris-storage.