Azure Data Lake Storage module for NestJS
npm install nestjs-adlsnpm i --save @azure/storage-file-datalake nestjs-adls
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) {
}
}
``