tigris-bucket-management について
tigris-bucket-managementは、Tigrisオブジェクトストレージのバケットライフサイクルを管理するスキルで、コードからバケットを扱う開発者向けです。作成、一覧表示、情報確認、削除に加え、アクセス権、リージョン、一貫性、ストレージ階層の設定を扱います。
主な機能
- 01バケットの作成と設定
- 02バケットの一覧表示
- 03バケット情報の確認
- 04バケットの削除
- 05アクセス・リージョン・階層の設定
活用シーン
- 01アプリ用の非公開または公開バケット作成
- 02削除前のバケット情報確認
- 03データの所在に応じたリージョン選択
- 04バケットのスナップショット設定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tigrisdata/ skills --skill tigris-bucket-managementインストール後、Claude Code で/tigris-bucket-managementを入力して読み込まれたか確認します。
同梱ファイルmetadata.jsonREADME.md
詳細
Tigris バケット管理
前提条件
何よりも先に、Tigris CLI がまだ利用できない場合はインストールしてください。
tigris help || npm install -g @tigrisdata/cli
インストールが必要な場合は、ユーザーに次のように伝えてください。「Tigris オブジェクトストレージを利用できるように、Tigris CLI(@tigrisdata/cli)をインストールしています。」
概要
バケットはオブジェクトを格納するコンテナです。このスキルでは、バケットのライフサイクル(作成、一覧表示、情報の確認、削除)を扱います。
クイックリファレンス
| 操作 | 関数 | 主なパラメーター |
|---|---|---|
| 作成 | createBucket(name, options) | name, access, region, enableSnapshot |
| 一覧表示 | listBuckets(options) | limit, paginationToken |
| 情報の確認 | getBucketInfo(name) | bucketName |
| 削除 | removeBucket(name, options) | bucketName, force |
バケットの作成
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",
});
バケット作成オプション
| オプション | 値 | デフォルト | 用途 |
|---|---|---|---|
| access | public/private | private | オブジェクトの読み取り可否 |
| consistency | default/strict | default | 読み取り一貫性レベル |
| defaultTier | STANDARD/STANDARD_IA/GLACIER/GLACIER_IR | STANDARD | デフォルトのストレージ階層 |
| enableSnapshot | boolean | false | スナップショット/フォークを有効化 |
| region | string | global | バケットのリージョン |
| sourceBucketName | string | - | このバケットからフォーク |
| sourceBucketSnapshot | string | - | このスナップショットからフォーク |
注: スナップショットを有効にしたバケットでは、STANDARD 階層を使用する必要があります。
バケットの一覧表示
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);
}
バケット情報の取得
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
// }
}
バケットの削除
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,
});
警告: 強制削除は取り消せません。すべてのオブジェクトが失われます。
バケットのアクセスレベル
| レベル | 動作 | 用途 |
|---|---|---|
| private | オブジェクトへのアクセスに認証が必要 | デフォルト、機密データ |
| public | オブジェクトを誰でも読み取り可能 | 静的アセット、公開コンテンツ |
一貫性レベル
| レベル | 動作 | トレードオフ |
|---|---|---|
| default | 低レイテンシ、結果整合性 | ほとんどのワークロード |
| strict | 強い一貫性、高レイテンシ | 重要なデータ |
ストレージ階層
| 階層 | 用途 | コスト |
|---|---|---|
| STANDARD | 汎用 | 標準 |
| STANDARD_IA | アクセス頻度が低いデータ | 低コスト |
| GLACIER | 長期アーカイブ | 最低コスト |
| GLACIER_IR | アクセス頻度は低いが迅速な取得が必要 | まれにアクセスするアーカイブ |
リージョン
データの配置やコンプライアンス要件に応じてリージョンを指定します。
await createBucket("data-eu", { region: "eu" });
await createBucket("data-asia", { region: "asia-south-1" });
グローバルバケット(ほとんどの用途で推奨)にする場合は、空のままにします。
よくある間違い
| 間違い | 解決方法 |
|---|---|
| STANDARD 以外の階層でスナップショットを有効にする | スナップショットには STANDARD 階層が必要 |
| 削除前にバケットの存在を確認しない | 先に getBucketInfo を使用する |
| 空でないバケットを強制せずに削除しようとする | force: true を使用するか、先にバケットを空にする |
| 名前が競合する | バケット名はグローバルに一意である必要がある |
Forking and Snapshots
For version control (snapshots/forking), see the tigris-snapshots-forking skill.
コメント
Markdown 対応