Skip to main content

Complete API Reference

API reference for @tigrisdata/storage v2.15.1.

For usage examples and guides, see Using the SDK.

Contents

Client API

Functions and types exported from @tigrisdata/storage/client for browser-side uploads.

upload

function upload(
name: string,
data: File | Blob,
options?: UploadOptions,
): Promise<TigrisStorageResponse<UploadResponse, Error>>;

executeWithConcurrency

Executes an array of task functions with a concurrency limit. Each task is a function that returns a Promise.

function executeWithConcurrency<T>(
tasks: (() => Promise<T>)[],
concurrency: number,
): Promise<T[]>;

Types

UploadOptions

type UploadOptions = {
access?: "public" | "private";
addRandomSuffix?: boolean;
allowOverwrite?: boolean;
contentType?: string;
contentDisposition?: "attachment" | "inline";
url?: string;
multipart?: boolean;
partSize?: number;
/**
* Maximum number of concurrent part uploads for multipart uploads
* @default 4
*/
concurrency?: number;
onUploadProgress?: (progress: UploadProgress) => void;
};
PropertyTypeRequiredDescription
access'public' | 'private'No
addRandomSuffixbooleanNo
allowOverwritebooleanNo
contentTypestringNo
contentDisposition'attachment' | 'inline'No
urlstringNo
multipartbooleanNo
partSizenumberNo
concurrencynumberNoMaximum number of concurrent part uploads for multipart uploads
onUploadProgress(progress: UploadProgress) =&gt; voidNo

UploadProgress

type UploadProgress = {
loaded: number;
total: number;
percentage: number;
};
PropertyTypeRequiredDescription
loadednumberYes
totalnumberYes
percentagenumberYes

UploadResponse

type UploadResponse = {
contentDisposition?: string;
contentType?: string;
modified: Date;
name: string;
/**
* @deprecated Use `name` instead. Will be removed in the next major version.
*/
path?: string;
size: number;
url: string;
};
PropertyTypeRequiredDescription
contentDispositionstringNo
contentTypestringNo
modifiedDateYes
namestringYes
pathstringNoDeprecated. Use name instead. Will be removed in the next major version.
sizenumberYes
urlstringYes

Object Operations

Create, read, update, and delete objects in a bucket.

put

function put(
path: string,
body: string | ReadableStream | Blob | Buffer,
options?: PutOptions,
): Promise<TigrisStorageResponse<PutResponse, Error>>;

get

Overloads:

function get(
path: string,
format: "string",
options?: GetOptions,
): Promise<TigrisStorageResponse<string, Error>>;
function get(
path: string,
format: "file",
options?: GetOptions,
): Promise<TigrisStorageResponse<File, Error>>;
function get(
path: string,
format: "stream",
options?: GetOptions,
): Promise<TigrisStorageResponse<ReadableStream, Error>>;
function head(
path: string,
options?: HeadOptions,
): Promise<TigrisStorageResponse<HeadResponse | void, Error>>;

list

function list(
options?: ListOptions,
): Promise<TigrisStorageResponse<ListResponse, Error>>;

remove

function remove(
path: string,
options?: RemoveOptions,
): Promise<TigrisStorageResponse<void, Error>>;

updateObject

function updateObject(
path: string,
options?: UpdateObjectOptions,
): Promise<TigrisStorageResponse<UpdateObjectResponse, Error>>;

Types

PutOptions

type PutOptions = {
access?: "public" | "private";
addRandomSuffix?: boolean;
allowOverwrite?: boolean;
contentType?: string;
contentDisposition?: "attachment" | "inline";
multipart?: boolean;
partSize?: number;
queueSize?: number;
abortController?: AbortController;
onUploadProgress?: PutOnUploadProgress;
config?: TigrisStorageConfig;
};
PropertyTypeRequiredDescription
access'public' | 'private'No
addRandomSuffixbooleanNo
allowOverwritebooleanNo
contentTypestringNo
contentDisposition'attachment' | 'inline'No
multipartbooleanNo
partSizenumberNo
queueSizenumberNo
abortControllerAbortControllerNo
onUploadProgressPutOnUploadProgressNo
configTigrisStorageConfigNo

PutResponse

type PutResponse = {
contentDisposition: string | undefined;
contentType: string | undefined;
modified: Date;
path: string;
size: number;
url: string;
};
PropertyTypeRequiredDescription
contentDispositionstring | undefinedYes
contentTypestring | undefinedYes
modifiedDateYes
pathstringYes
sizenumberYes
urlstringYes

PutOnUploadProgress

type PutOnUploadProgress = ({
loaded,
total,
percentage,
}: {
loaded: number;
total: number;
percentage: number;
}) => void;

GetOptions

type GetOptions = {
config?: TigrisStorageConfig;
contentDisposition?: "attachment" | "inline";
contentType?: string;
encoding?: string;
snapshotVersion?: string;
};
PropertyTypeRequiredDescription
configTigrisStorageConfigNo
contentDisposition'attachment' | 'inline'No
contentTypestringNo
encodingstringNo
snapshotVersionstringNo

GetResponse

type GetResponse = string | File | ReadableStream;

HeadOptions

type HeadOptions = {
snapshotVersion?: string;
config?: TigrisStorageConfig;
};
PropertyTypeRequiredDescription
snapshotVersionstringNo
configTigrisStorageConfigNo

HeadResponse

type HeadResponse = {
contentDisposition: string;
contentType: string;
modified: Date;
path: string;
size: number;
url: string;
};
PropertyTypeRequiredDescription
contentDispositionstringYes
contentTypestringYes
modifiedDateYes
pathstringYes
sizenumberYes
urlstringYes

ListOptions

type ListOptions = {
delimiter?: string;
prefix?: string;
limit?: number;
paginationToken?: string;
snapshotVersion?: string;
config?: TigrisStorageConfig;
};
PropertyTypeRequiredDescription
delimiterstringNo
prefixstringNo
limitnumberNo
paginationTokenstringNo
snapshotVersionstringNo
configTigrisStorageConfigNo

ListItem

type ListItem = {
id: string;
name: string;
size: number;
lastModified: Date;
};
PropertyTypeRequiredDescription
idstringYes
namestringYes
sizenumberYes
lastModifiedDateYes

ListResponse

type ListResponse = {
items: ListItem[];
paginationToken: string | undefined;
hasMore: boolean;
};
PropertyTypeRequiredDescription
itemsListItem[]Yes
paginationTokenstring | undefinedYes
hasMorebooleanYes

RemoveOptions

type RemoveOptions = {
config?: TigrisStorageConfig;
};
PropertyTypeRequiredDescription
configTigrisStorageConfigNo

UpdateObjectOptions

type UpdateObjectOptions = {
config?: TigrisStorageConfig;
key?: string;
access?: "public" | "private";
};
PropertyTypeRequiredDescription
configTigrisStorageConfigNo
keystringNo
access'public' | 'private'No

UpdateObjectResponse

type UpdateObjectResponse = {
path: string;
};
PropertyTypeRequiredDescription
pathstringYes

Presigned URLs

Generate presigned URLs for time-limited access to objects.

getPresignedUrl

function getPresignedUrl(
path: string,
options: GetPresignedUrlOptions,
): Promise<TigrisStorageResponse<GetPresignedUrlResponse, Error>>;

Types

GetPresignedUrlOptions

type GetPresignedUrlOptions = {
/**
* The access key ID to use for the presigned URL.
* If not provided, the access key ID from the config will be used.
*/
accessKeyId?: string;
/**
* The expiration time of the presigned URL in seconds.
* Default is 3600 seconds (1 hour).
*/
expiresIn?: number;
/**
@deprecated This property is deprecated and will be removed in the next major version.
*/
contentType?: string;
config?: TigrisStorageConfig;
} & MethodOrOperation;
PropertyTypeRequiredDescription
accessKeyIdstringNoThe access key ID to use for the presigned URL.
If not provided, the access key ID from the config will be used.
expiresInnumberNoThe expiration time of the presigned URL in seconds.
Default is 3600 seconds (1 hour).
contentTypestringNoDeprecated. This property is deprecated and will be removed in the next major version.
configTigrisStorageConfigNo

GetPresignedUrlResponse

type GetPresignedUrlResponse = {
url: string;
expiresIn: number;
} & MethodOrOperation;
PropertyTypeRequiredDescription
urlstringYes
expiresInnumberYes

GetPresignedUrlOperation

type GetPresignedUrlOperation = "get" | "put";

MethodOrOperation

type MethodOrOperation =
| {
method: GetPresignedUrlOperation;
operation?: never;
}
| {
operation: GetPresignedUrlOperation;
method?: never;
};
PropertyTypeRequiredDescription
methodGetPresignedUrlOperationYes
operationneverNo
operationGetPresignedUrlOperationYes
methodneverNo

Bucket Management

Create, list, update, and delete buckets.

createBucket

function createBucket(
bucketName: string,
options?: CreateBucketOptions,
): Promise<TigrisStorageResponse<CreateBucketResponse, Error>>;

getBucketInfo

function getBucketInfo(
bucketName: string,
options?: GetBucketInfoOptions,
): Promise<TigrisStorageResponse<BucketInfoResponse, Error>>;

listBuckets

function listBuckets(
options?: ListBucketsOptions,
): Promise<TigrisStorageResponse<ListBucketsResponse, Error>>;

updateBucket

function updateBucket(
bucketName: string,
options?: UpdateBucketOptions,
): Promise<TigrisStorageResponse<UpdateBucketResponse, Error>>;

removeBucket

function removeBucket(
bucketName: string,
options?: RemoveBucketOptions,
): Promise<TigrisStorageResponse<void, Error>>;

Types

CreateBucketOptions

type CreateBucketOptions = {
enableSnapshot?: boolean;
sourceBucketName?: string;
sourceBucketSnapshot?: string;
access?: "public" | "private";
defaultTier?: StorageClass;
/**
* @deprecated This property is deprecated and will be removed in the next major version. Use locations instead.
* @see https://www.tigrisdata.com/docs/buckets/locations/
*/
consistency?: "strict" | "default";
/**
* @deprecated This property is deprecated and will be removed in the next major version. Use locations instead.
* @see https://www.tigrisdata.com/docs/buckets/locations/
*/
region?: string | string[];
locations?: BucketLocations;
config?: Omit<TigrisStorageConfig, "bucket">;
};
PropertyTypeRequiredDescription
enableSnapshotbooleanNo
sourceBucketNamestringNo
sourceBucketSnapshotstringNo
access'public' | 'private'No
defaultTierStorageClassNo
consistency'strict' | 'default'NoDeprecated. This property is deprecated and will be removed in the next major version. Use locations instead.
regionstring | string[]NoDeprecated. This property is deprecated and will be removed in the next major version. Use locations instead.
locationsBucketLocationsNo
configOmit&lt;TigrisStorageConfig, 'bucket'&gt;No

CreateBucketResponse

type CreateBucketResponse = {
isSnapshotEnabled: boolean;
hasForks: boolean;
sourceBucketName?: string;
sourceBucketSnapshot?: string;
};
PropertyTypeRequiredDescription
isSnapshotEnabledbooleanYes
hasForksbooleanYes
sourceBucketNamestringNo
sourceBucketSnapshotstringNo

GetBucketInfoOptions

type GetBucketInfoOptions = {
config?: TigrisStorageConfig;
};
PropertyTypeRequiredDescription
configTigrisStorageConfigNo

BucketInfoResponse

type BucketInfoResponse = {
isSnapshotEnabled: boolean;
/**
* @deprecated
* @see forkInfo.hasChildren
* This property is deprecated and will be removed in the next major version
*/
hasForks: boolean;
/**
* @deprecated
* @see forkInfo.parents[0].bucketName
* This property is deprecated and will be removed in the next major version
*/
sourceBucketName?: string;
/**
* @deprecated
* @see forkInfo.parents[0].snapshot
* This property is deprecated and will be removed in the next major version
*/
sourceBucketSnapshot?: string;
forkInfo:
| {
hasChildren: boolean;
parents: Array<{
bucketName: string;
forkCreatedAt: Date;
snapshot: string;
snapshotCreatedAt: Date;
}>;
}
| undefined;
settings: {
allowObjectAcl: boolean;
defaultTier: StorageClass;
lifecycleRules?: BucketLifecycleRule[];
dataMigration?: Omit<BucketMigration, "enabled">;
ttlConfig?: BucketTtl;
customDomain?: string;
deleteProtection: boolean;
corsRules: BucketCorsRule[];
additionalHeaders?: Record<string, string>;
notifications?: BucketNotification;
};
sizeInfo: {
numberOfObjects: number | undefined;
size: number | undefined;
numberOfObjectsAllVersions: number | undefined;
};
};
PropertyTypeRequiredDescription
isSnapshotEnabledbooleanYes
hasForksbooleanYesDeprecated.
sourceBucketNamestringNoDeprecated.
sourceBucketSnapshotstringNoDeprecated.
forkInfo\{ hasChildren: boolean; parents: Array&lt;\{ bucketName: string; forkCreatedAt: Date; snapshot: string; snapshotCreatedAt: Date; \}&gt;; \} | undefinedYes
settings\{ allowObjectAcl: boolean; defaultTier: StorageClass; lifecycleRules?: BucketLifecycleRule[]; dataMigration?: Omit&lt;BucketMigration, 'enabled'&gt;; ttlConfig?: BucketTtl; customDomain?: string; deleteProtection: boolean; corsRules: BucketCorsRule[]; additionalHeaders?: Record&lt;string, string&gt;; notifications?: BucketNotification; \}Yes
sizeInfo\{ numberOfObjects: number | undefined; size: number | undefined; numberOfObjectsAllVersions: number | undefined; \}Yes

ListBucketsOptions

type ListBucketsOptions = {
config?: TigrisStorageConfig;
paginationToken?: string;
limit?: number;
};
PropertyTypeRequiredDescription
configTigrisStorageConfigNo
paginationTokenstringNo
limitnumberNo

ListBucketsResponse

type ListBucketsResponse = {
buckets: Bucket[];
owner?: BucketOwner;
paginationToken?: string;
};
PropertyTypeRequiredDescription
bucketsBucket[]Yes
ownerBucketOwnerNo
paginationTokenstringNo

Bucket

type Bucket = {
name: string;
creationDate: Date;
};
PropertyTypeRequiredDescription
namestringYes
creationDateDateYes

BucketOwner

type BucketOwner = {
name: string;
id: string;
};
PropertyTypeRequiredDescription
namestringYes
idstringYes

UpdateBucketOptions

type UpdateBucketOptions = {
access?: "public" | "private";
allowObjectAcl?: boolean;
disableDirectoryListing?: boolean;
/**
* @deprecated This property is deprecated and will be removed in the next major version. Use locations instead.
* @see https://www.tigrisdata.com/docs/buckets/locations/
*/
regions?: string | string[];
locations?: BucketLocations;
cacheControl?: string;
customDomain?: string;
enableAdditionalHeaders?: boolean;
enableDeleteProtection?: boolean;
config?: Omit<TigrisStorageConfig, "bucket">;
};
PropertyTypeRequiredDescription
access'public' | 'private'No
allowObjectAclbooleanNo
disableDirectoryListingbooleanNo
regionsstring | string[]NoDeprecated. This property is deprecated and will be removed in the next major version. Use locations instead.
locationsBucketLocationsNo
cacheControlstringNo
customDomainstringNo
enableAdditionalHeadersbooleanNo
enableDeleteProtectionbooleanNo
configOmit&lt;TigrisStorageConfig, 'bucket'&gt;No

UpdateBucketResponse

type UpdateBucketResponse = {
bucket: string;
updated: boolean;
};
PropertyTypeRequiredDescription
bucketstringYes
updatedbooleanYes

RemoveBucketOptions

type RemoveBucketOptions = {
force?: boolean;
config?: TigrisStorageConfig;
};
PropertyTypeRequiredDescription
forcebooleanNo
configTigrisStorageConfigNo

Bucket Configuration

Configure CORS, lifecycle rules, TTL, migration, and notifications for a bucket.

setBucketCors

function setBucketCors(
bucketName: string,
options?: SetBucketCorsOptions,
): Promise<TigrisStorageResponse<UpdateBucketResponse, Error>>;

setBucketLifecycle

function setBucketLifecycle(
bucketName: string,
options?: SetBucketLifecycleOptions,
): Promise<TigrisStorageResponse<UpdateBucketResponse, Error>>;

setBucketTtl

function setBucketTtl(
bucketName: string,
options?: SetBucketTtlOptions,
): Promise<TigrisStorageResponse<UpdateBucketResponse, Error>>;

setBucketMigration

function setBucketMigration(
bucketName: string,
options?: SetBucketMigrationOptions,
): Promise<TigrisStorageResponse<UpdateBucketResponse, Error>>;

setBucketNotifications

Configure webhook notifications for object events on a bucket.

Scenarios:

  1. If notificationConfig is empty ({}), sends it as-is to clear notifications.

  2. If only enabled is provided, fetches the existing config and merges with the new enabled value. Errors if no existing config is found.

  3. If config is provided without enabled, fetches existing config and merges, retaining the existing enabled value.

  4. url is validated when provided (must be a valid http/https URL).

  5. auth.username and auth.password are validated when provided.

  6. auth.token is validated when provided.

  7. auth.token and auth.username/auth.password cannot be provided together.

  8. override replaces the existing config when true. When false (default), merges with the existing config.

function setBucketNotifications(
bucketName: string,
options: SetBucketNotificationsOptions,
): Promise<TigrisStorageResponse<UpdateBucketResponse, Error>>;

Types

SetBucketCorsOptions

type SetBucketCorsOptions = {
config?: Omit<TigrisStorageConfig, "bucket">;
override?: boolean;
rules: BucketCorsRule[];
};
PropertyTypeRequiredDescription
configOmit&lt;TigrisStorageConfig, 'bucket'&gt;No
overridebooleanNo
rulesBucketCorsRule[]Yes

SetBucketLifecycleOptions

type SetBucketLifecycleOptions = {
lifecycleRules: BucketLifecycleRule[];
config?: Omit<TigrisStorageConfig, "bucket">;
};
PropertyTypeRequiredDescription
lifecycleRulesBucketLifecycleRule[]Yes
configOmit&lt;TigrisStorageConfig, 'bucket'&gt;No

SetBucketTtlOptions

type SetBucketTtlOptions = {
ttlConfig?: BucketTtl;
config?: Omit<TigrisStorageConfig, "bucket">;
};
PropertyTypeRequiredDescription
ttlConfigBucketTtlNo
configOmit&lt;TigrisStorageConfig, 'bucket'&gt;No

SetBucketMigrationOptions

type SetBucketMigrationOptions = {
dataMigration?: BucketMigration;
config?: Omit<TigrisStorageConfig, "bucket">;
};
PropertyTypeRequiredDescription
dataMigrationBucketMigrationNo
configOmit&lt;TigrisStorageConfig, 'bucket'&gt;No

SetBucketNotificationsOptions

type SetBucketNotificationsOptions = {
config?: Omit<TigrisStorageConfig, "bucket">;
notificationConfig: BucketNotification;
override?: boolean;
};
PropertyTypeRequiredDescription
configOmit&lt;TigrisStorageConfig, 'bucket'&gt;No
notificationConfigBucketNotificationYes
overridebooleanNo

BucketCorsRule

type BucketCorsRule = {
allowedOrigins: string | string[];
allowedMethods?: string | string[];
allowedHeaders?: string | string[];
exposeHeaders?: string | string[];
maxAge?: number;
};
PropertyTypeRequiredDescription
allowedOriginsstring | string[]Yes
allowedMethodsstring | string[]No
allowedHeadersstring | string[]No
exposeHeadersstring | string[]No
maxAgenumberNo

BucketLifecycleRule

type BucketLifecycleRule = {
id?: string;
enabled?: boolean;
storageClass?: Exclude<StorageClass, "STANDARD">;
days?: number;
date?: string;
};
PropertyTypeRequiredDescription
idstringNo
enabledbooleanNo
storageClassExclude&lt;StorageClass, 'STANDARD'&gt;No
daysnumberNo
datestringNo

BucketTtl

type BucketTtl = {
id?: string;
enabled?: boolean;
days?: number;
date?: string;
};
PropertyTypeRequiredDescription
idstringNo
enabledbooleanNo
daysnumberNo
datestringNo

BucketMigration

type BucketMigration = {
enabled: boolean;
accessKey?: string;
secretKey?: string;
region?: string;
name?: string;
endpoint?: string;
writeThrough?: boolean;
};
PropertyTypeRequiredDescription
enabledbooleanYes
accessKeystringNo
secretKeystringNo
regionstringNo
namestringNo
endpointstringNo
writeThroughbooleanNo

BucketNotification

type BucketNotification =
| BucketNotificationBase
| BucketNotificationBasicAuth
| BucketNotificationTokenAuth;

BucketNotificationBase

type BucketNotificationBase = {
enabled?: boolean;
url?: string;
filter?: string;
};
PropertyTypeRequiredDescription
enabledbooleanNo
urlstringNo
filterstringNo

BucketNotificationBasicAuth

type BucketNotificationBasicAuth = BucketNotificationBase & {
auth: {
username: string;
password: string;
token?: never;
};
};
PropertyTypeRequiredDescription
auth\{ username: string; password: string; token?: never; \}Yes

BucketNotificationTokenAuth

type BucketNotificationTokenAuth = BucketNotificationBase & {
auth: {
token: string;
username?: never;
password?: never;
};
};
PropertyTypeRequiredDescription
auth\{ token: string; username?: never; password?: never; \}Yes

Snapshots

Create and list bucket snapshots.

createBucketSnapshot

Overloads:

function createBucketSnapshot(
options?: CreateBucketSnapshotOptions,
): Promise<TigrisStorageResponse<CreateBucketSnapshotResponse, Error>>;
function createBucketSnapshot(
sourceBucketName?: string,
options?: CreateBucketSnapshotOptions,
): Promise<TigrisStorageResponse<CreateBucketSnapshotResponse, Error>>;

listBucketSnapshots

Overloads:

function listBucketSnapshots(
options?: ListBucketSnapshotsOptions,
): Promise<TigrisStorageResponse<ListBucketSnapshotsResponse, Error>>;
function listBucketSnapshots(
sourceBucketName?: string,
options?: ListBucketSnapshotsOptions,
): Promise<TigrisStorageResponse<ListBucketSnapshotsResponse, Error>>;

Types

CreateBucketSnapshotOptions

type CreateBucketSnapshotOptions = {
name?: string;
/**
* @deprecated Use name instead, will be removed in the next major version
*/
description?: string;
config?: Omit<TigrisStorageConfig, "bucket">;
};
PropertyTypeRequiredDescription
namestringNo
descriptionstringNoDeprecated. Use name instead, will be removed in the next major version
configOmit&lt;TigrisStorageConfig, 'bucket'&gt;No

CreateBucketSnapshotResponse

type CreateBucketSnapshotResponse = {
snapshotVersion: string;
};
PropertyTypeRequiredDescription
snapshotVersionstringYes

ListBucketSnapshotsOptions

type ListBucketSnapshotsOptions = {
config?: Omit<TigrisStorageConfig, "bucket">;
};
PropertyTypeRequiredDescription
configOmit&lt;TigrisStorageConfig, 'bucket'&gt;No

ListBucketSnapshotsResponse

type ListBucketSnapshotsResponse = Array<{
name?: string | undefined;
version: string | undefined;
/**
* @deprecated Use name and version instead, will be removed in the next major version
*/
snapshotName: string | undefined;
creationDate: Date | undefined;
}>;

Multipart Upload

Low-level multipart upload operations for advanced use cases.

initMultipartUpload

function initMultipartUpload(
path: string,
options?: InitMultipartUploadOptions,
): Promise<TigrisStorageResponse<InitMultipartUploadResponse, Error>>;

getPartsPresignedUrls

function getPartsPresignedUrls(
path: string,
parts: number[],
uploadId: string,
options?: GetPartsPresignedUrlsOptions,
): Promise<TigrisStorageResponse<GetPartsPresignedUrlsResponse, Error>>;

completeMultipartUpload

function completeMultipartUpload(
path: string,
uploadId: string,
partIds: Array<{
[key: number]: string;
}>,
options?: CompleteMultipartUploadOptions,
): Promise<TigrisStorageResponse<CompleteMultipartUploadResponse, Error>>;

Types

InitMultipartUploadOptions

type InitMultipartUploadOptions = {
config?: TigrisStorageConfig;
};
PropertyTypeRequiredDescription
configTigrisStorageConfigNo

InitMultipartUploadResponse

type InitMultipartUploadResponse = {
uploadId: string;
};
PropertyTypeRequiredDescription
uploadIdstringYes

GetPartsPresignedUrlsOptions

type GetPartsPresignedUrlsOptions = {
config?: TigrisStorageConfig;
};
PropertyTypeRequiredDescription
configTigrisStorageConfigNo

GetPartsPresignedUrlsResponse

type GetPartsPresignedUrlsResponse = Array<{
part: number;
url: string;
}>;

CompleteMultipartUploadOptions

type CompleteMultipartUploadOptions = {
config?: TigrisStorageConfig;
};
PropertyTypeRequiredDescription
configTigrisStorageConfigNo

CompleteMultipartUploadResponse

type CompleteMultipartUploadResponse = {
path: string;
url: string;
};
PropertyTypeRequiredDescription
pathstringYes
urlstringYes

Client Upload Handling

Server-side handler for processing client upload requests (pairs with the Client API upload function).

handleClientUpload

function handleClientUpload(
request: ClientUploadRequest,
config?: TigrisStorageConfig,
): Promise<TigrisStorageResponse<unknown, Error>>;

Types

ClientUploadRequest

interface ClientUploadRequest {
action: UploadAction;
name: string;
contentType?: string;
uploadId?: string;
parts?: number[];
partIds?: Array<{
[key: number]: string;
}>;
}
PropertyTypeRequiredDescription
actionUploadActionYes
namestringYes
contentTypestringNo
uploadIdstringNo
partsnumber[]No
partIdsArray&lt;\{ [key: number]: string; \}&gt;No

UploadAction

enum UploadAction {
SinglepartInit = "singlepart-init",
MultipartInit = "multipart-init",
MultipartGetParts = "multipart-get-parts",
MultipartComplete = "multipart-complete",
}

Statistics

Retrieve account and bucket-level storage statistics.

getStats

function getStats(
options?: GetStatsOptions,
): Promise<TigrisStorageResponse<StatsResponse, Error>>;

Types

GetStatsOptions

type GetStatsOptions = {
config?: TigrisStorageConfig;
};
PropertyTypeRequiredDescription
configTigrisStorageConfigNo

StatsResponse

type StatsResponse = {
stats: {
activeBuckets: number;
totalObjects: number;
totalStorageBytes: number;
totalUniqueObjects: number;
};
buckets: Array<{
name: string;
creationDate: Date;
forkInfo:
| {
hasChildren: boolean;
parents: Array<{
bucketName: string;
forkCreatedAt: Date;
snapshot: string;
snapshotCreatedAt: Date;
}>;
}
| undefined;
type: BucketType;
regions: Array<string>;
visibility: BucketVisibility;
}>;
};
PropertyTypeRequiredDescription
stats\{ activeBuckets: number; totalObjects: number; totalStorageBytes: number; totalUniqueObjects: number; \}Yes
bucketsArray&lt;\{ name: string; creationDate: Date; forkInfo: \{ hasChildren: boolean; parents: Array&lt;\{ bucketName: string; forkCreatedAt: Date; snapshot: string; snapshotCreatedAt: Date; \}&gt;; \} | undefined; type: BucketType; regions: Array&lt;string&gt;; visibility: BucketVisibility; \}&gt;Yes

BucketType

type BucketType = "Regular" | "Snapshot";

BucketVisibility

type BucketVisibility = "public" | "private";

Common Types

Shared configuration and response types used across all API methods.

Types

TigrisStorageConfig

type TigrisStorageConfig = {
bucket?: string;
accessKeyId?: string;
secretAccessKey?: string;
endpoint?: string;
sessionToken?: string;
organizationId?: string;
};
PropertyTypeRequiredDescription
bucketstringNo
accessKeyIdstringNo
secretAccessKeystringNo
endpointstringNo
sessionTokenstringNo
organizationIdstringNo

TigrisStorageResponse

type TigrisStorageResponse<T, E = Error> = TigrisResponse<T, E>;

TigrisResponse

type TigrisResponse<T, E = Error> =
| {
data: T;
error?: never;
}
| {
error: E;
data?: never;
};
PropertyTypeRequiredDescription
dataTYes
errorneverNo
errorEYes
dataneverNo

StorageClass

type StorageClass = "STANDARD" | "STANDARD_IA" | "GLACIER" | "GLACIER_IR";

BucketLocations

type BucketLocations =
| {
type: "multi";
values: BucketLocationMulti;
}
| {
type: "dual";
values: BucketLocationDualOrSingle | BucketLocationDualOrSingle[];
}
| {
type: "single";
values: BucketLocationDualOrSingle;
}
| {
type: "global";
values?: never;
};
PropertyTypeRequiredDescription
type'multi'Yes
valuesBucketLocationMultiYes
type'dual'Yes
valuesBucketLocationDualOrSingle | BucketLocationDualOrSingle[]Yes
type'single'Yes
valuesBucketLocationDualOrSingleYes
type'global'Yes
valuesneverNo

BucketLocationMulti

type BucketLocationMulti = (typeof multiRegions)[number];

BucketLocationDualOrSingle

type BucketLocationDualOrSingle = (typeof singleOrDualRegions)[number];

multiRegions

const multiRegions: readonly ["usa", "eur"];

singleOrDualRegions

const singleOrDualRegions: readonly [
"ams",
"fra",
"gru",
"iad",
"jnb",
"lhr",
"nrt",
"ord",
"sin",
"sjc",
"syd",
];