nestjs-minio - 您最喜欢的Nestjs对象存储

Created at: 2019-11-13 13:39:01
Language: TypeScript

巢徽标

用于Nest框架的Minio模块

NPM版本 包装许可证 NPM下载

买我一杯咖啡

描述

这是Nestnest-minio模块。本快速入门指南将向您展示如何安装客户端SDK并执行示例JavaScript程序。有关API和示例的完整列表,请查看JavaScript客户端API参考文档。

本文档假定您已经安装了一个有效的nodejs设置。

安装

$ npm i --save nestjs-minio

初始化MinIO客户端

您需要五个项目才能连接到MinIO对象存储服务器。

参数 描述
终点 对象存储服务的URL。
港口 TCP / IP端口号。此输入是可选的。
80
HTTP和
443
HTTP的默认值设置为。
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.');
      },
    );
  }
}