Coder Social home page Coder Social logo

nest-file's Introduction

Микросервис загрузки файлов

Возможности:

  1. Загрузить файл с веб-браузера или мобильного приложения
  2. Сохранить его на диске или в aws-like хранилище
  3. Подготовить миниатюры для изображений

Подключение

  1. Создать в проекте модуль на основе пакета:
import {Module} from '@steroidsjs/nest/infrastructure/decorators/Module';
import coreModule from '@steroidsjs/nest-file';
import {IFileModuleConfig} from '@steroidsjs/nest-file/infrastructure/config';
import {ModuleHelper} from '@steroidsjs/nest/infrastructure/helpers/ModuleHelper';

@Module({
    ...coreModule,
    tables: [
        ...coreModule.tables,
        ...ModuleHelper.importDir(__dirname + '/tables'),
    ],
    module: (config: IFileModuleConfig) => {
        const module = coreModule.module(config);
        return {
            ...module,
            providers: [
                ...module.providers,
            ],
            controllers: [
                ...module.controllers,
            ],
            exports: [
                ...module.exports,
            ],
        };
    },
})
export class FileModule {}
  1. Сгенерировать и применить миграции:
yarn cli migrate:generate
yarn cli migrate
  1. Задать в .env файле проекта нужную конфигурацию:
APP_FILE_STORAGE_NAME=minio_s3
APP_FILE_STORAGE_S3_HOST=s3.yandexcloud.net
APP_FILE_STORAGE_S3_ACCESS=xxx
APP_FILE_STORAGE_S3_SECRET=yyy
APP_FILE_STORAGE_S3_MAIN_BUCKET=arm-supervisor
APP_FILE_STORAGE_S3_PORT=443
APP_FILE_STORAGE_S3_USE_SSL=1
APP_FILE_STORAGE_S3_ROOT_URL=https://storage.yandexcloud.net/arm-supervisor

Описание переменных:

  • APP_FILE_STORAGE_NAME - тип используемого хранилища по-умолчанию (minio_s3 или local, из словаря FileStorageEnum)
  • APP_FILE_STORAGE_ROOT_PATH - место хранения файлов при использовании хранилища local (по-умолчанию join(process.cwd(), '../files/uploaded'))
  • APP_FILE_STORAGE_ROOT_URL - URL-префикс для ссылок на файлы (по-умолчанию /files/uploaded)
  • APP_FILE_MAX_SIZE_MB - максимальный размер файла в мегабайтах
  • APP_FILE_PREVIEW_THUMBNAIL_WIDTH - Ширина генеририуемых превью
  • APP_FILE_PREVIEW_THUMBNAIL_HEIGHT - Высота генеририуемых превью
  • APP_FILE_STORAGE_S3_HOST - Хост S3 хранилища
  • APP_FILE_STORAGE_S3_ACCESS - Публичный ключ S3 хранилища
  • APP_FILE_STORAGE_S3_SECRET - Секретный ключ S3 хранилища
  • APP_FILE_STORAGE_S3_MAIN_BUCKET - название бакета S3 хранилища
  • APP_FILE_STORAGE_S3_PORT - порт S3 хранилища
  • APP_FILE_STORAGE_S3_USE_SSL - использовать SSL для подключения
  • APP_FILE_STORAGE_S3_ROOT_URL - адрес S3 хранилища, включая бакет
  • APP_FILE_STORAGE_S3_REGION - регион S3 хранилища

nest-file's People

Contributors

vkoktashev avatar pashakart avatar affka avatar syomx1 avatar perlexed avatar miltdev avatar

Watchers

Serg avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.