tigris-bucket-management

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Tigris Bucket Management

Tigris存储桶管理

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
操作函数关键参数
创建
createBucket(name, options)
name, access, region, enableSnapshot
列出
listBuckets(options)
limit, paginationToken
查看
getBucketInfo(name)
bucketName
删除
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",
});
typescript
import { createBucket } from "@tigrisdata/storage";

// 简单私有存储桶
const result = await createBucket("my-new-bucket");
if (result.error) {
  console.error("Error:", result.error);
} else {
  console.log("Created:", result.data);
}

// 公共存储桶(任何人都可读取对象)
const result = await createBucket("public-assets", {
  access: "public",
});

// 启用快照的存储桶(用于版本控制)
const result = await createBucket("my-snapshot-bucket", {
  enableSnapshot: true,
});

// 区域存储桶
const result = await createBucket("eu-data", {
  region: "eu",
});

// 从现有存储桶快照分叉
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.
选项取值默认值用途
accesspublic/privateprivate对象可读性
consistencydefault/strictdefault读取一致性级别
defaultTierSTANDARD/STANDARD_IA/GLACIER/GLACIER_IRSTANDARD默认存储层级
enableSnapshotbooleanfalse启用快照/分叉功能
regionstringglobal存储桶区域
sourceBucketNamestring-从此存储桶分叉
sourceBucketSnapshotstring-从此快照分叉
注意: 启用快照的存储桶必须使用STANDARD层级。

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);
}
typescript
import { listBuckets } from "@tigrisdata/storage";

// 列出所有存储桶
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);
}

// 分页列出
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
  // }
}
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.
typescript
import { removeBucket } from "@tigrisdata/storage";

// 删除空存储桶
const result = await removeBucket("my-bucket");
if (result.error) {
  console.error("Error:", result.error);
} else {
  console.log("Deleted successfully");
}

// 强制删除(即使存储桶非空)
const result = await removeBucket("my-bucket", {
  force: true,
});
警告: 强制删除操作不可撤销,所有对象将被永久删除。

Bucket Access Levels

存储桶访问级别

LevelBehaviorUse Case
privateObjects require authDefault, sensitive data
publicObjects publicly readableStatic assets, public content
级别行为使用场景
private对象需要身份验证才能访问默认选项,适用于敏感数据
public对象可公开读取静态资源、公开内容

Consistency Levels

一致性级别

LevelBehaviorTrade-off
defaultLow latency, eventual consistencyMost workloads
strictStrong consistency, higher latencyCritical data
级别行为权衡
default低延迟,最终一致性大多数工作负载
strict强一致性,延迟较高关键数据场景

Storage Tiers

存储层级

TierUse CaseCost
STANDARDGeneral purposeStandard
STANDARD_IAInfrequently accessedLower cost
GLACIERLong-term archiveLowest cost
GLACIER_IRRare access, fast retrievalArchive with occasional access
层级使用场景成本
STANDARD通用场景标准成本
STANDARD_IA不常访问的数据成本较低
GLACIER长期存档成本最低
GLACIER_IR极少访问但需要快速检索的存档适用于偶尔访问的存档数据

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).
为了数据本地化或合规要求,可指定存储区域:
typescript
await createBucket("data-eu", { region: "eu" });
await createBucket("data-asia", { region: "asia-south-1" });
留空则创建全局存储桶(推荐大多数场景使用)。

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
错误修复方案
为非STANDARD层级的存储桶启用快照快照功能仅支持STANDARD层级
删除前未检查存储桶是否存在先调用
getBucketInfo
进行检查
尝试删除非空存储桶但未使用强制参数使用
force: true
或先清空存储桶
存储桶名称冲突存储桶名称必须全局唯一

Forking and Snapshots

快照与分叉

For version control (snapshots/forking), see the tigris-snapshots-forking skill.
如需了解版本控制(快照/分叉)相关内容,请查看tigris-snapshots-forking技能。

Prerequisites

前置条件

Before managing buckets, ensure @tigrisdata/storage is installed. See installing-tigris-storage.
在管理存储桶之前,请确保已安装@tigrisdata/storage。详情请查看installing-tigris-storage