UNPKG

@supabase/storage-js

Version:
83 lines (77 loc) 2.27 kB
import StorageFileApi from './packages/StorageFileApi' import StorageBucketApi from './packages/StorageBucketApi' import StorageAnalyticsClient from './packages/StorageAnalyticsClient' import { Fetch } from './lib/fetch' import { StorageVectorsClient } from './lib/vectors' export interface StorageClientOptions { useNewHostname?: boolean } export class StorageClient extends StorageBucketApi { /** * Creates a client for Storage buckets, files, analytics, and vectors. * * @category File Buckets * @example * ```ts * import { StorageClient } from '@supabase/storage-js' * * const storage = new StorageClient('https://xyzcompany.supabase.co/storage/v1', { * apikey: 'public-anon-key', * }) * const avatars = storage.from('avatars') * ``` */ constructor( url: string, headers: { [key: string]: string } = {}, fetch?: Fetch, opts?: StorageClientOptions ) { super(url, headers, fetch, opts) } /** * Perform file operation in a bucket. * * @category File Buckets * @param id The bucket id to operate on. * * @example * ```typescript * const avatars = supabase.storage.from('avatars') * ``` */ from(id: string): StorageFileApi { return new StorageFileApi(this.url, this.headers, id, this.fetch) } /** * * @alpha * * Access vector storage operations. * * **Public alpha:** This API is part of a public alpha release and may not be available to your account type. * * @category Vector Buckets * @returns A StorageVectorsClient instance configured with the current storage settings. */ get vectors(): StorageVectorsClient { return new StorageVectorsClient(this.url + '/vector', { headers: this.headers, fetch: this.fetch, }) } /** * * @alpha * * Access analytics storage operations using Iceberg tables. * * **Public alpha:** This API is part of a public alpha release and may not be available to your account type. * * @category Analytics Buckets * @returns A StorageAnalyticsClient instance configured with the current storage settings. */ get analytics(): StorageAnalyticsClient { return new StorageAnalyticsClient(this.url + '/iceberg', this.headers, this.fetch) } }