@gensx/storage
Version:
Cloud storage, blobs, sqlite, and vector database providers/hooks for GenSX.
56 lines • 2.03 kB
TypeScript
import { Readable } from "stream";
import { Blob, BlobOptions, BlobResponse, BlobStorage, DeleteBlobResult, ListBlobsOptions, ListBlobsResponse } from "./types.js";
/**
* Implementation of Blob interface for remote cloud storage
*/
export declare class RemoteBlob<T> implements Blob<T> {
private key;
private baseUrl;
private apiKey;
private org;
private project;
private environment;
constructor(key: string, baseUrl: string, apiKey: string, org: string, project: string, environment: string);
getJSON(): Promise<T | null>;
getString(): Promise<string | null>;
getRaw(): Promise<BlobResponse<Buffer> | null>;
getStream(): Promise<Readable>;
putJSON(value: T, options?: BlobOptions): Promise<{
etag: string;
}>;
putString(value: string, options?: BlobOptions): Promise<{
etag: string;
}>;
/**
* Put raw binary data into the blob.
* @param value The binary data to store
* @param options Optional metadata and content type
*/
putRaw(value: Buffer, options?: BlobOptions): Promise<{
etag: string;
}>;
putStream(stream: Readable, options?: BlobOptions): Promise<{
etag: string;
}>;
delete(): Promise<void>;
exists(): Promise<boolean>;
getMetadata(): Promise<Record<string, string> | null>;
updateMetadata(metadata: Record<string, string>, options?: BlobOptions): Promise<void>;
}
/**
* Remote implementation of blob storage using GenSX Console API
*/
export declare class RemoteBlobStorage implements BlobStorage {
private apiKey;
private apiBaseUrl;
private org;
private project;
private environment;
private defaultPrefix?;
constructor(project: string, environment: string, defaultPrefix?: string);
getBlob<T>(key: string): Blob<T>;
listBlobs(options?: ListBlobsOptions): Promise<ListBlobsResponse>;
blobExists(key: string): Promise<boolean>;
deleteBlob(key: string): Promise<DeleteBlobResult>;
}
//# sourceMappingURL=remote.d.ts.map