UNPKG

@rytass/storages

Version:
28 lines (27 loc) 1.6 kB
import { Readable } from 'stream'; import { FileTypeResult } from 'file-type'; import { ConverterManager } from '@rytass/file-converter'; import { FilenameHashAlgorithm, InputFile, ReadBufferFileOptions, ReadStreamFileOptions, StorageFile, StorageOptions, WriteFileOptions } from './typings'; export interface StorageInterface { write(file: InputFile): Promise<StorageFile>; batchWrite(files: InputFile[]): Promise<StorageFile[]>; read(key: string): Promise<Readable>; read(key: string, options: ReadBufferFileOptions): Promise<Buffer>; read(key: string, options: ReadStreamFileOptions): Promise<Readable>; remove(key: string): Promise<void>; } export declare class Storage<O extends Record<string, any> = Record<string, any>> implements StorageInterface { readonly converterManager: ConverterManager; readonly hashAlgorithm: FilenameHashAlgorithm; constructor(options?: StorageOptions<O>); getExtension(file: InputFile): Promise<FileTypeResult | undefined>; getBufferFilename(buffer: Buffer): Promise<[string, string | undefined]>; getStreamFilename(stream: Readable): Promise<[string, string | undefined]>; write(file: InputFile, options?: WriteFileOptions): Promise<StorageFile>; batchWrite(files: InputFile[], options?: WriteFileOptions[]): Promise<StorageFile[]>; read(key: string): Promise<Readable>; read(key: string, options: ReadBufferFileOptions): Promise<Buffer>; read(key: string, options: ReadStreamFileOptions): Promise<Readable>; remove(key: string): Promise<void>; isExists(key: string): Promise<boolean>; }