用于Nest框架的Minio模块
这是Nest的nest-minio模块。本快速入门指南将向您展示如何安装客户端SDK并执行示例JavaScript程序。有关API和示例的完整列表,请查看JavaScript客户端API参考文档。
本文档假定您已经安装了一个有效的nodejs设置。
$ npm i --save nestjs-minio
您需要五个项目才能连接到MinIO对象存储服务器。
参数 | 描述 |
---|---|
终点 | 对象存储服务的URL。 |
港口 | TCP / IP端口号。此输入是可选的。80HTTP和 443HTTP的默认值设置为。 |
accessKey | 访问密钥就像唯一标识您帐户的用户ID。 |
密钥 | 密钥是您帐户的密码。 |
使用SSL | 将此值设置为“ true”以启用安全(HTTPS)访问 |
通过将minio模块导入为,提供其凭据:
import { Module } from '@nestjs/common';
import { NestMinioClientController } from './nest-minio-client.controller';
import { NestMinioModule } from '../nest-minio.module';
@Module({
controllers: [NestMinioClientController],
imports: [
NestMinioModule.register({
endPoint: 'play.min.io',
port: 9000,
useSSL: true,
accessKey: 'Q3AM3UQ867SPQQA43P2F',
secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
}),
],
})
export class NestMinioClientModule {}
});
然后,您可以将其注入控制器或服务中,方法是:
constructor(@Inject(MINIO_CONNECTION) private readonly minioClient) {}
此示例程序连接到对象存储服务器,在服务器上创建存储桶,然后将文件上传到存储桶。
在此示例中,我们将使用运行在https://play.min.io的MinIO服务器。随意使用此服务进行测试和开发。此示例中显示的访问凭据向公众开放。
import { Controller, Get, Inject } from '@nestjs/common';
import { MINIO_CONNECTION } from '../constants';
@Controller()
export class NestMinioClientController {
constructor(@Inject(MINIO_CONNECTION) private readonly minioClient) {}
@Get()
index() {
const file = '/tmp/app.zip';
const metaData = {
'Content-Type': 'application/octet-stream',
'X-Amz-Meta-Testing': 1234,
example: 5678,
};
// Using fPutObject API upload your file to the bucket europetrip.
this.minioClient.fPutObject(
'europetripxxx3',
'app.zip',
file,
metaData,
function(err, etag) {
if (err) {
return console.log(err);
}
console.log('File uploaded successfully.');
},
);
}
}