nestjs引入minio
时间: 2023-11-21 21:53:00 浏览: 46
NestJS是一个基于Node.js的开发框架,它提供了许多有用的功能和工具,其中包括对Minio的支持。Minio是一个开源的对象存储服务器,它兼容Amazon S3 API,可以用于存储和检索大量数据。在NestJS中引入Minio可以通过安装minio-js库来实现。在NestJS中使用Minio需要创建一个MinioService类,该类需要使用minio-js库中的Minio.Client类来连接到Minio服务器。在MinioService类中,可以使用putObject方法将文件上传到Minio服务器。在上传文件之前,需要对已有的文件进行判断是否有相同文件名(或者使用时间戳),如果有重名的文件会对其进行覆盖操作。下面是一个示例代码,用于在NestJS中引入Minio:
// minio.service.ts
import { Injectable } from "@nestjs/common";
import * as Minio from "minio";
@Injectable()
export class MinioService {
private readonly minioClient: Minio.Client;
constructor() {
this.minioClient = new Minio.Client({
// 服务ip
endPoint: "192.168.18.24",
// 服务端口
port: 9000,
useSSL: false,
accessKey: "minioadmin",
secretKey: "minioadmin",
});
}
async uploadFile(bucketName: string, objectName: string, stream: Buffer) {
const res = await this.minioClient.bucketExists(bucketName);
console.log(res);
console.log(objectName, stream);
await this.minioClient.putObject(
bucketName,
objectName,
stream,
function (e) {
if (e) {
console.log(e);
return "error";
} else {
// 如果重名也会成功
return "Successfully uploaded the buffer";
}
},
);
}
}
--相关问题--:
1. Minio和Amazon S3有什么区别?
2. NestJS还支持哪些对象存储服务器?
3.