Detalhes do pacote

nestjs-minio-client2

rettechnologys11MIT2.2.2

Minio module for NestJS framework

nestjs, minio, minio-client-sdk, nestjs-minio

readme (leia-me)

Nestjs Minio Client

Minio client for NestJs.

Features

  • Configure and connect to Minio instance

Prerequisites

  • NestJS version 9 or later.

Installation

Yarn

yarn add nestjs-minio-client

NPM

npm install nestjs-minio-client --save

Make a release

  • Merge a PR on master.
  • Pull and checkout master
  • Update Changelog and commit
  • Run tests yarn install && yarn autoclean && yarn build && yarn publish
  • Run yarn install && yarn autoclean && yarn build && yarn publish - this will publish on the npm repo (need to be logged under rettechnologys yarn login)

Getting Started

To use Minio client we need to register module for example in app.module.ts

import { Module } from '@nestjs/common';
import { MinioModule } from 'nestjs-minio-client';

@Module({
imports: [
    MinioModule.register({
      endPoint: '127.0.0.1',
      port: 9000,
      useSSL: false,
      accessKey: 'minio_access_key',
      secretKey: 'minio_secret_key'
    })
})

export class AppModule {}

If you are using the @nestjs/config package from nest, you can use the ConfigModule using the registerAsync() function to inject your environment variables like this in your custom module:

import { Module } from '@nestjs/common';
import { MinioModule } from 'nestjs-minio-client';
import { ConfigModule, ConfigService } from '@nestjs/config';

@Module({
  imports: [
    MinioModule.registerAsync({
      imports: [ConfigModule],
      inject: [ConfigService],
      useFactory: (config: ConfigService) => {
        return {
          endPoint: config.get('MINIO_ENDPOINT'),
          port: parseInt(config.get('MINIO_PORT')),
          useSSL: false,
          accessKey: config.get('MINIO_ACCESS_KEY'),
          secretKey: config.get('MINIO_SECRET_KEY'),
        };
      },
    }),
  ],
  providers: [MinioClientService],
  exports: [MinioClientService],
})
export class MinioClientModule {}

After the registration connection to minio instance should be completed and ready for usage.

Example usage in service.

import { Injectable } from '@nestjs/common';
import { MinioService } from 'nestjs-minio-client';

@Injectable()
export class ContentService {
  constructor(private readonly minioService: MinioService) {}

  async listAllBuckets() {
    return this.minioService.client.listBuckets();
  }
}

For full Client API see Minio Javascript SDK reference here