@flystorage/local-fs
Version:
<img src="https://raw.githubusercontent.com/duna-oss/flystorage/main/flystorage.svg" width="50px" height="50px" />
71 lines (70 loc) • 3.52 kB
TypeScript
import { ChecksumOptions, CreateDirectoryOptions, PublicUrlOptions, StatEntry, StorageAdapter, TemporaryUrlOptions, WriteOptions, CopyFileOptions, MoveFileOptions, MimeTypeOptions, UploadRequestOptions, UploadRequest } from '@flystorage/file-storage';
import { Readable } from 'stream';
import { UnixVisibilityConversion } from './unix-visibility.js';
import { PreparedUploadStrategy } from '@flystorage/file-storage';
export type LocalStorageAdapterOptions = {
rootDirectoryVisibility?: string;
publicUrlOptions?: LocalPublicUrlOptions;
temporaryUrlOptions?: Omit<LocalTemporaryUrlOptions, 'expiresAt'>;
};
export type LocalPublicUrlOptions = PublicUrlOptions & {
baseUrl?: string;
};
export type LocalPublicUrlGenerator = {
publicUrl(path: string, options: LocalPublicUrlOptions): Promise<string>;
};
export declare class BaseUrlLocalPublicUrlGenerator implements LocalPublicUrlGenerator {
publicUrl(path: string, options: LocalPublicUrlOptions): Promise<string>;
}
export type LocalTemporaryUrlOptions = TemporaryUrlOptions & {
baseUrl?: string;
};
export type LocalTemporaryUrlGenerator = {
temporaryUrl(path: string, options: LocalTemporaryUrlOptions): Promise<string>;
};
export declare class FailingLocalTemporaryUrlGenerator implements LocalTemporaryUrlGenerator {
temporaryUrl(): Promise<string>;
}
export declare class LocalStorageAdapter implements StorageAdapter {
readonly rootDir: string;
private readonly options;
private readonly visibilityConversion;
private readonly publicUrlGenerator;
private readonly temporaryUrlGenerator;
private readonly uploadPreparer;
private prefixer;
constructor(rootDir: string, options?: LocalStorageAdapterOptions, visibilityConversion?: UnixVisibilityConversion, publicUrlGenerator?: LocalPublicUrlGenerator, temporaryUrlGenerator?: LocalTemporaryUrlGenerator, uploadPreparer?: PreparedUploadStrategy);
copyFile(from: string, to: string, options: CopyFileOptions): Promise<void>;
moveFile(from: string, to: string, options: MoveFileOptions): Promise<void>;
prepareUpload(path: string, options: UploadRequestOptions): Promise<UploadRequest>;
temporaryUrl(path: string, options: TemporaryUrlOptions): Promise<string>;
publicUrl(path: string, options: PublicUrlOptions): Promise<string>;
mimeType(path: string, options: MimeTypeOptions): Promise<string>;
fileSize(path: string): Promise<number>;
lastModified(path: string): Promise<number>;
list(path: string, { deep }: {
deep: boolean;
}): AsyncGenerator<StatEntry, any, unknown>;
read(path: string): Promise<Readable>;
write(path: string, contents: Readable, options: WriteOptions): Promise<void>;
deleteFile(path: string): Promise<void>;
createDirectory(path: string, options: CreateDirectoryOptions): Promise<void>;
stat(path: string, type?: 'file' | 'directory'): Promise<StatEntry>;
fileExists(path: string): Promise<boolean>;
deleteDirectory(path: string): Promise<void>;
private mapStatToEntry;
changeVisibility(path: string, visibility: string): Promise<void>;
visibility(path: string): Promise<string>;
directoryExists(path: string): Promise<boolean>;
private rootDirectoryCreation;
private ensureRootDirectoryExists;
private ensureParentDirectoryExists;
checksum(path: string, options: ChecksumOptions): Promise<string>;
}
/**
* BC export
*
* @deprecated
*/
export declare class LocalFileStorage extends LocalStorageAdapter {
}