@anchan828/nest-storage
Install
npm i @anchan828/nest-storage @anchan828/nest-storage-express
Usage
You need to import 2 modules
- StorageModule
- ProviderModule
- The storage provider you want to use
@Module({
imports: [
StorageModule.register({
bucket: "bucket",
cacheDir: "path/to/cacheDir",
}),
LocalStorageProviderModule.register(),
],
})
export class AppModule {}
export class Service {
constructor(private readonly service: StorageService) {}
public async uploadFile(): Promise<void> {
const dataPath = "local-path.txt";
await this.service.upload(dataPath, "path/to/test.txt");
}
}
Storage providers
You can set some storage providers.
Signed URL
You can get signed URL
await this.service.getSignedUrl(filename, {
action: "upload" | "download" | "delete",
expires: number,
});
responseDispositionFilename
You can use the option to customize the file name when downloading file.
If you use this, content-disposition: attachment; filename=\"${filename}\"
will be added to the header when downloading.
await this.service.getSignedUrl(filename, {
action: "download",
responseDispositionFilename: "changed-filename.txt",
});