pre-create the files directory to reduce IO operations

This commit is contained in:
Hazelnoot 2024-10-16 11:54:06 -04:00
parent 2deb64486b
commit b1d9314d6e

View file

@ -24,6 +24,8 @@ export class InternalStorageService {
@Inject(DI.config) @Inject(DI.config)
private config: Config, private config: Config,
) { ) {
// No one should erase the working directly *while the server is running*.
fs.mkdirSync(path, { recursive: true });
} }
@bindThis @bindThis
@ -38,14 +40,12 @@ export class InternalStorageService {
@bindThis @bindThis
public async saveFromPath(key: string, srcPath: string): Promise<string> { public async saveFromPath(key: string, srcPath: string): Promise<string> {
await mkdir(path, { recursive: true });
await copyFile(srcPath, this.resolvePath(key)); await copyFile(srcPath, this.resolvePath(key));
return `${this.config.url}/files/${key}`; return `${this.config.url}/files/${key}`;
} }
@bindThis @bindThis
public async saveFromBuffer(key: string, data: Buffer): Promise<string> { public async saveFromBuffer(key: string, data: Buffer): Promise<string> {
await mkdir(path, { recursive: true });
await writeFile(this.resolvePath(key), data); await writeFile(this.resolvePath(key), data);
return `${this.config.url}/files/${key}`; return `${this.config.url}/files/${key}`;
} }