使用 restify 上传文件后清理临时文件
Cleaning temporary files after file upload with restify
我正在使用 restify
构建一个节点存储服务器。我正在通过 restify.bodyParser
处理上传,它在后台使用 formidable
。
Formidable 默认将文件存储在 os.tmpDir()
中,我需要将其更改为其他文件夹,因此我通过 restify.bodyParser({uploadDir: '/path/to/new/tmp'})
进行了更改。
问题是即使在我处理完请求后,这些临时文件仍保留在 tmp 目录中。
我看到了这个问题(Handling Temporary Files after upload),假设处理后删除tmp文件。
我的问题是,您是否需要始终手动删除文件?即使使用默认的 os.tmpDir()
目录?默认系统 tmp 文件夹如何工作?它有时会自己冲洗吗?
通常,对于文件上传,您的代码会将上传的文件从其临时位置移动到更永久的位置。如果在处理上传后,您留下了一个临时文件,您应该手动清理它(使用 fs.unlink()
)。
在 UNIX 类型的操作系统上,os.tmpDir()
(通常是 /tmp
)不会被系统定期清除(尽管它通常在系统启动期间被清除)。
您可以删除单个文件,也可以删除所有文件
import rimraf from 'rimraf';
import fs from 'fs';
export class DiskCleaner {
constructor(public folderName: string) {
Object.setPrototypeOf(this, DiskCleaner.prototype);
}
removeDirectory(): void {
try {
rimraf(this.folderName, function () {});
} catch (error) {}
}
unlinkFile(path: string): void {
fs.unlinkSync(path);
}
}
我正在使用 restify
构建一个节点存储服务器。我正在通过 restify.bodyParser
处理上传,它在后台使用 formidable
。
Formidable 默认将文件存储在 os.tmpDir()
中,我需要将其更改为其他文件夹,因此我通过 restify.bodyParser({uploadDir: '/path/to/new/tmp'})
进行了更改。
问题是即使在我处理完请求后,这些临时文件仍保留在 tmp 目录中。
我看到了这个问题(Handling Temporary Files after upload),假设处理后删除tmp文件。
我的问题是,您是否需要始终手动删除文件?即使使用默认的 os.tmpDir()
目录?默认系统 tmp 文件夹如何工作?它有时会自己冲洗吗?
通常,对于文件上传,您的代码会将上传的文件从其临时位置移动到更永久的位置。如果在处理上传后,您留下了一个临时文件,您应该手动清理它(使用 fs.unlink()
)。
在 UNIX 类型的操作系统上,os.tmpDir()
(通常是 /tmp
)不会被系统定期清除(尽管它通常在系统启动期间被清除)。
您可以删除单个文件,也可以删除所有文件
import rimraf from 'rimraf';
import fs from 'fs';
export class DiskCleaner {
constructor(public folderName: string) {
Object.setPrototypeOf(this, DiskCleaner.prototype);
}
removeDirectory(): void {
try {
rimraf(this.folderName, function () {});
} catch (error) {}
}
unlinkFile(path: string): void {
fs.unlinkSync(path);
}
}