Tigris Object Operations

tigrisdata/skills/skills/tigris-object-operations

作者 tigrisdata668ea424758e無授權條款2 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫2 個月前更新

Use when working with objects in Tigris Storage - uploading, downloading, deleting, listing, getting metadata, or generating presigned URLs

AI 產生的概覽

Tigris 物件儲存操作參考:上傳、下載、刪除、列出、中繼資料與預先簽署 URL。

功能
此技能是一份僅含說明的參考文件,介紹如何使用 @tigrisdata/storage 套件操作 Tigris Storage 中的物件。內容記錄 put、get、remove、list、head 與 getPresignedUrl 函式,並附有程式碼範例、選項表格與常見錯誤說明。它也涵蓋透過用戶端套件在瀏覽器端上傳,並提醒可能需要先安裝 Tigris CLI。
適用情境
當任務涉及在 Tigris Storage 中上傳、下載、刪除、列出或檢視物件,或需要產生用於暫時存取與用戶端上傳的預先簽署 URL 時使用。處理大型檔案分段上傳、分頁,以及覆寫與可見度選項時也適用。
執行需求
需要 @tigrisdata/storage 套件(瀏覽器上傳另需其用戶端進入點),以及 Tigris CLI(@tigrisdata/cli),技能說明要求在無法使用時透過 npm 安裝。儲存操作隱含需要網路存取與 Tigris 憑證。此技能不隨附指令碼,僅包含說明與程式碼範例。

Tigris Object Operations

Prerequisites

Before doing anything else, install the Tigris CLI if it's not already available:

bash
tigris help || npm install -g @tigrisdata/cli

If you need to install it, tell the user: "I'm installing the Tigris CLI (@tigrisdata/cli) so we can work with Tigris object storage."

Overview

Tigris Storage provides object operations: upload (put), download (get), delete (remove), list, metadata (head), and presigned URLs.

All methods return TigrisStorageResponse<T, E> - check error property first.

Quick Reference

OperationFunctionKey Parameters
Uploadput(path, body, options)path, body, access, contentType
Downloadget(path, format, options)path, format (string/file/stream)
Deleteremove(path, options)path
Listlist(options)prefix, limit, paginationToken
Metadatahead(path, options)path
Presigned URLgetPresignedUrl(path, options)path, operation (get/put)

Upload (put)

typescript
import { put } from "@tigrisdata/storage";
// Simple uploadconst result = await put("simple.txt", "Hello, World!");if (result.error) {  console.error("Error:", result.error);} else {  console.log("Uploaded:", result.data?.url);}
// Large file with progressconst result = await put("large.mp4", fileStream, {  multipart: true,  onUploadProgress: ({ loaded, total, percentage }) => {    console.log(`${loaded}/${total} bytes (${percentage}%)`);  },});
// Prevent overwriteconst result = await put("config.json", config, {  allowOverwrite: false,});

Put Options

OptionValuesDefaultPurpose
accesspublic/private-Object visibility
addRandomSuffixbooleanfalseAvoid naming collisions
allowOverwritebooleantrueAllow replacing existing
contentTypestringinferredMIME type
contentDispositioninline/attachmentinlineDownload behavior
multipartbooleanfalseEnable for large files
onUploadProgresscallback-Track upload progress

Download (get)

typescript
import { get } from "@tigrisdata/storage";
// Get as stringconst result = await get("object.txt", "string");if (result.error) {  console.error("Error:", result.error);} else {  console.log("Content:", result.data);}
// Get as file (triggers download in browser)const result = await get("object.pdf", "file", {  contentDisposition: "attachment",});
// Get as streamconst result = await get("video.mp4", "stream");const reader = result.data?.getReader();// Process stream...

Get Options

OptionValuesDefaultPurpose
contentDispositioninline/attachmentinlineDownload behavior
contentTypestringfrom uploadMIME type
encodingstringutf-8Text encoding
snapshotVersionstring-Read from snapshot

Delete (remove)

typescript
import { remove } from "@tigrisdata/storage";
const result = await remove("object.txt");if (result.error) {  console.error("Error:", result.error);} else {  console.log("Deleted successfully");}

List Objects

typescript
import { list } from "@tigrisdata/storage";
// List all objectsconst result = await list();console.log("Objects:", result.data?.items);
// List with prefix (folders)const result = await list({ prefix: "images/" });
// List with paginationconst allFiles = [];let currentPage = await list({ limit: 10 });allFiles.push(...currentPage.data?.items);
while (currentPage.data?.hasMore) {  currentPage = await list({    limit: 10,    paginationToken: currentPage.data?.paginationToken,  });  allFiles.push(...currentPage.data?.items);}

List Options

OptionPurpose
prefixFilter keys starting with prefix
delimiterGroup keys (e.g., '/' for folders)
limitMax objects to return (default: 100)
paginationTokenContinue from previous list
snapshotVersionList from snapshot

Object Metadata (head)

typescript
import { head } from "@tigrisdata/storage";
const result = await head("object.txt");if (result.error) {  console.error("Error:", result.error);} else {  console.log("Metadata:", result.data);  // { path, size, contentType, modified, url, contentDisposition }}

Presigned URLs

typescript
import { getPresignedUrl } from "@tigrisdata/storage";
// Presigned URL for GET (temporary access)const result = await getPresignedUrl("object.txt", {  operation: "get",  expiresIn: 3600, // 1 hour});console.log("URL:", result.data?.url);
// Presigned URL for PUT (allow client upload)const result = await getPresignedUrl("upload.txt", {  operation: "put",  expiresIn: 600, // 10 minutes});

Presigned URL Options

OptionValuesDefaultPurpose
operationget/put-URL purpose
expiresInseconds3600URL expiration
contentTypestring-Require for PUT

Common Mistakes

MistakeFix
Not checking error firstAlways check if (result.error) before result.data
Wrong format in get()Use 'string', 'file', or 'stream'
Forgetting multipart: trueEnable for files >100MB
Ignoring paginationUse hasMore and paginationToken

Client-Side Uploads

For browser uploads, use the client package to upload directly to Tigris:

typescript
import { upload } from "@tigrisdata/storage/client";
const result = await upload(file.name, file, {  url: "/api/upload", // Your backend endpoint  onUploadProgress: ({ percentage }) => {    console.log(`${percentage}%`);  },});

For initial setup, see file-storage.

來源與署名

來源:tigrisdata/skills位於skills/tigris-object-operations提交668ea42

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架