{"id":22310612,"url":"https://github.com/the-software-compagny/nestjs_module_factorydrive","last_synced_at":"2026-02-08T06:38:13.609Z","repository":{"id":195541613,"uuid":"692921847","full_name":"The-Software-Compagny/nestjs_module_factorydrive","owner":"The-Software-Compagny","description":"Factory drive module for NestJS framework","archived":false,"fork":false,"pushed_at":"2024-09-16T06:19:48.000Z","size":251,"stargazers_count":1,"open_issues_count":6,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-12-03T09:09:54.592Z","etag":null,"topics":["abstract","abstraction","async","bucket","disk","drive","driver","factory","factorydrive","file","filesystem","nestjs","node","nodejs","npm","promise","spaces","storage"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@streamkits/nestjs_module_factorydrive","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/The-Software-Compagny.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-18T01:13:44.000Z","updated_at":"2024-06-19T20:27:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"4760a2ca-5c2c-4bf6-b972-2dee43c00fb3","html_url":"https://github.com/The-Software-Compagny/nestjs_module_factorydrive","commit_stats":{"total_commits":20,"total_committers":2,"mean_commits":10.0,"dds":0.25,"last_synced_commit":"469874f5fb23bbd61895528c4e4e894c9e59af4b"},"previous_names":["streamkits/nestjs_module_factorydrive","the-software-compagny/nestjs_module_factorydrive"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/The-Software-Compagny%2Fnestjs_module_factorydrive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/The-Software-Compagny%2Fnestjs_module_factorydrive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/The-Software-Compagny%2Fnestjs_module_factorydrive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/The-Software-Compagny%2Fnestjs_module_factorydrive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/The-Software-Compagny","download_url":"https://codeload.github.com/The-Software-Compagny/nestjs_module_factorydrive/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227998833,"owners_count":17853788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abstract","abstraction","async","bucket","disk","drive","driver","factory","factorydrive","file","filesystem","nestjs","node","nodejs","npm","promise","spaces","storage"],"created_at":"2024-12-03T21:13:44.804Z","updated_at":"2026-02-08T06:38:13.553Z","avatar_url":"https://github.com/The-Software-Compagny.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"http://nestjs.com/\" target=\"blank\"\u003e\n    \u003cimg src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Factory drive module for NestJS framework\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/org/The-Software-Compagny\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@the-software-compagny/nestjs_module_factorydrive.svg\" alt=\"NPM Version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/org/The-Software-Compagny\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/@the-software-compagny/nestjs_module_factorydrive.svg\" alt=\"Package License\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/The-Software-Compagny/nestjs_module_rcon/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/The-Software-Compagny/nestjs_module_factorydrive/actions/workflows/ci.yml/badge.svg\" alt=\"Publish Package to npmjs\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n# NestJS Factory drive Module\nFactory drive module for NestJS Framework\n\n## Install dependencies\n```bash\nyarn add @the-software-compagny/nestjs_module_factorydrive\n```\n## Instanciate\n```ts\n// app.module.ts\nimport { FactorydriveModule, FactorydriveService } from '@the-software-compagny/nestjs_module_factorydrive'\n\n@Module({\n  imports: [\n    // ...\n    FactorydriveModule.forRootAsync({\n      imports: [ConfigModule],\n      inject: [ConfigService],\n      useFactory: async (config: ConfigService) =\u003e ({\n        ...config.get('factorydrive.options'),\n      }),\n    }),\n    // ...\n  ],\n})\nexport class AppModule {\n  public constructor(storage: FactorydriveService) {\n    // If you want to add a new driver you can use the registerDriver method\n    storage.registerDriver('s3', AwsS3Storage)\n  }\n}\n\n//config.ts\nexport default {\n  // ...\n  factorydrive: {\n    options: {\n      default: 'local',\n      disks: {\n        local: {\n          driver: 'local',\n          config: {\n            root: process.cwd() + '/storage',\n          },\n        },\n        s3: {\n          driver: 's3',\n          config: {\n            credentials: {\n              accessKeyId: '******',\n              secretAccessKey: '******',\n            },\n            endpoint: 'http://minio:9000/',\n            region: 'us-east-1',\n            bucket: 'example',\n            forcePathStyle: true,\n          },\n        },\n      },\n    },\n  },\n  // ...\n}\n```\n## Usage\n```ts\n// filestorage.service.ts\nimport { FactorydriveService } from '@the-software-compagny/nestjs_module_factorydrive'\n\n@Injectable()\nexport class FileStorageService {\n  public constructor(\n    @InjectFactorydrive() private readonly factorydrive: FactorydriveService,\n  ) {}\n\n  public async uploadFile(path: string, file: Express.Multer.File): Promise\u003cstring\u003e {\n    const res = await this.factorydrive.getDisk('s3').put(path, file.buffer)\n    return res.raw\n  }\n\n  public async deleteFile(path: string): Promise\u003cvoid\u003e {\n    await this.factorydrive.getDisk('s3').delete(path)\n  }\n\n  public async moveFile(path: string, target: string): Promise\u003cvoid\u003e {\n    await this.factorydrive.getDisk('s3').move(path, target)\n  }\n\n  public async copyFile(path: string, target: string): Promise\u003cvoid\u003e {\n    await this.factorydrive.getDisk('s3').copy(path, target)\n  }\n\n  public async listFiles(path: string): Promise\u003cvoid\u003e {\n    await this.factorydrive.getDisk('s3').flatList(path)\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthe-software-compagny%2Fnestjs_module_factorydrive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthe-software-compagny%2Fnestjs_module_factorydrive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthe-software-compagny%2Fnestjs_module_factorydrive/lists"}