-
Adrian Paschkowski authoredAdrian Paschkowski authored
minio.service.ts 799 B
import { Injectable } from '@nestjs/common';
import { Client as MinioClient } from 'minio';
import { Readable } from 'stream';
@Injectable()
export class MinioService {
private readonly minio: MinioClient;
constructor() {
this.minio = new MinioClient({
endPoint: process.env.MINIO_HOST,
port: parseInt(process.env.MINIO_PORT),
accessKey: process.env.MINIO_ACCESS_KEY,
secretKey: process.env.MINIO_SECRET_KEY,
useSSL: process.env.MINIO_SSL?.toLowerCase() == 'true' ?? false,
});
}
async saveFile(path: string, data: Readable | Buffer) {
return new Promise<void>((resolve, reject) => {
this.minio.putObject(
process.env.MINIO_BUCKET,
path,
data,
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
},
);
});
}
}