UNPKG

@rytass/storages

Version:
29 lines (28 loc) 1.65 kB
import { Readable } from 'stream'; import { Buffer } from 'buffer'; 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, unknown> = Record<string, unknown>> 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>; }