diff --git a/src/Drivers/index.ts b/src/Drivers/index.ts index 2bc9410..1892962 100644 --- a/src/Drivers/index.ts +++ b/src/Drivers/index.ts @@ -8,7 +8,6 @@ import { CannotDeleteFileException, CannotGetMetaDataException, CannotSetVisibilityException, - Exception, } from '@adonisjs/core/build/standalone' import { @@ -36,6 +35,7 @@ import { ContainerExistsOptions, ContainerCreateResponse, ContainerDeleteResponse, + BlockBlobClient, } from '@azure/storage-blob' import { ReadStream } from 'fs' import { @@ -89,7 +89,7 @@ export class AzureStorageDriver implements AzureStorageDriverContract { } public async generateBlobSASURL( - blockBlobClient: { containerName: any; location: any; credential: any; url: any }, + blockBlobClient: BlockBlobClient, options: BlobSASSignatureValues ): Promise { options.permissions = @@ -100,15 +100,18 @@ export class AzureStorageDriver implements AzureStorageDriverContract { options.startsOn = options.startsOn || new Date() options.expiresOn = options.expiresOn || new Date(options.startsOn.valueOf() + 3600 * 1000) + const factories = (blockBlobClient as any).pipeline.factories + const credential = factories[factories.length - 1] as StorageSharedKeyCredential + const blobSAS = await generateBlobSASQueryParameters( { containerName: blockBlobClient.containerName, // Required - blobName: blockBlobClient.location, // Required + blobName: blockBlobClient.name, // Required permissions: options.permissions, // Required startsOn: options.startsOn, expiresOn: options.expiresOn, }, - blockBlobClient.credential + credential ) return `${blockBlobClient.url}?${blobSAS.toString()}` diff --git a/src/Drivers/utils.ts b/src/Drivers/utils.ts index 5b3e4d9..f782e8f 100644 --- a/src/Drivers/utils.ts +++ b/src/Drivers/utils.ts @@ -4,9 +4,11 @@ import { Exception } from '@adonisjs/core/build/standalone' * Unable to create container */ export class CannotCreateContainerException extends Exception { + /* tslint:disable:no-unused-variable */ private containerName: string + /* tslint:disable:no-unused-variable */ private original: any - public static invoke(containerName: string, original: any) { + public static invoke(containerName: string, original: any): CannotCreateContainerException { const error = new this( `Cannot create container with name: "${containerName}"`, 500, @@ -22,9 +24,11 @@ export class CannotCreateContainerException extends Exception { * Unable to create container */ export class CannotFindContainerException extends Exception { + /* tslint:disable:no-unused-variable */ private containerName: string + /* tslint:disable:no-unused-variable */ private original: any - public static invoke(containerName: string, original: any) { + public static invoke(containerName: string, original: any): CannotFindContainerException { const error = new this( `Cannot find container with name: "${containerName}"`, 500, @@ -40,9 +44,11 @@ export class CannotFindContainerException extends Exception { * Unable to create container */ export class CannotDeleteContainerException extends Exception { + /* tslint:disable:no-unused-variable */ private containerName: string + /* tslint:disable:no-unused-variable */ private original: any - public static invoke(containerName: string, original: any) { + public static invoke(containerName: string, original: any): CannotDeleteContainerException { const error = new this( `Cannot delete container with name: "${containerName}"`, 500, diff --git a/tsconfig.json b/tsconfig.json index 4d5e1a4..e4d0829 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,6 +2,7 @@ "extends": "./node_modules/@adonisjs/mrm-preset/_tsconfig", "compilerOptions": { "types": ["@types/node", "@adonisjs/core"], + "noUnusedLocals": false, "skipLibCheck": true }, "exclude": [