UNPKG

nestjs-adls

Version:

Azure Data Lake Storage module for NestJS

90 lines (75 loc) 2.56 kB
# NestJS Azure Data Lake Storage ## Overview [Azure Data Lake Storage(ADLS)](https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-introduction) module for [NestJS](https://nestjs.com/) framework. ## Before installation * Create Azure Data Lake Storage resource ([read more](https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-introduction)). * Get credentials from Azure Data Lake Storage using [Azure Portal](https://portal.azure.com/). ## Installation * `npm i --save @azure/storage-file-datalake nestjs-adls` ## Usage 1. Import AdlsModule to your AppModule: ```typescript import {Module} from '@nestjs/common'; import {StorageSharedKeyCredential} from '@azure/storage-file-datalake'; import {AdlsModule} from 'nestjs-adls'; @Module({ imports: [ AdlsModule.forRoot({ url: 'ADLS_URL', fileSystemName: 'ADLS_FILE_SYSTEM_NAME', credential: new StorageSharedKeyCredential( 'ADLS_ACCOUNT_NAME', 'ADLS_ACCOUNT_KEY' ) }) ], providers: [AppService] }) export class AppModule { } ``` Or async: ```typescript import {Module} from '@nestjs/common'; import {StorageSharedKeyCredential} from '@azure/storage-file-datalake'; import {AdlsModule} from 'nestjs-adls'; @Module({ imports: [ AdlsModule.forRootAsync({ useFactory: () => ({ url: 'ADLS_URL', fileSystemName: 'ADLS_FILE_SYSTEM_NAME', credential: new StorageSharedKeyCredential( 'ADLS_ACCOUNT_NAME', 'ADLS_ACCOUNT_KEY' ) }) }) ], providers: [AppService] }) export class AppModule { } ``` 2. Use `@InjectFileSystemClient()` decorator to inject `DataLakeFileSystemClient`. (will be used fileSystemName from AdlsModule options). ```typescript import {Injectable} from '@nestjs/common'; import {DataLakeFileSystemClient} from '@azure/storage-file-datalake'; import {InjectFileSystemClient} from 'nestjs-adls'; @Injectable() export class AppService { constructor(@InjectFileSystemClient() private readonly adlsClient: DataLakeFileSystemClient) { } } ``` Or use `@InjectDataLakeClient()` decorator to inject `DataLakeServiceClient`. ```typescript import {Injectable} from '@nestjs/common'; import {DataLakeServiceClient} from '@azure/storage-file-datalake'; import {InjectDataLakeClient} from 'nestjs-adls'; @Injectable() export class AppService { constructor(@InjectDataLakeClient() private readonly adlsClient: DataLakeServiceClient) { } } ```