nestjs-storage-blob
Version:
Azure Blob Storage module for Nest.js
82 lines (75 loc) • 4.05 kB
TypeScript
import * as _azure_storage_blob from '@azure/storage-blob';
import { StoragePipelineOptions, BlobServiceClient, AccountSASResourceTypes, AccountSASPermissionsLike, ServiceGenerateAccountSasUrlOptions, ContainerSASPermissionsLike, ContainerGenerateSasUrlOptions, BlobSASPermissionsLike, BlobGenerateSasUrlOptions, BlobItem } from '@azure/storage-blob';
import { Scope, ModuleMetadata, Type, DynamicModule } from '@nestjs/common';
declare const STORAGE_BLOB_CLIENT = "STORAGE_BLOB_CLIENT";
declare const STORAGE_BLOB_OPTIONS = "STORAGE_BLOB_OPTIONS";
declare const CONNECTION_VARIABLE = "NEST_STORAGE_BLOB_CONNECTION";
declare function InjectStorageBlob(): (target: object, key: string | symbol | undefined, index?: number | undefined) => void;
type PartialModuleOptions = {
storageOptions?: StoragePipelineOptions;
scope?: Scope;
connection: string;
};
type ModuleOptions = PartialModuleOptions & {
isGlobal?: boolean;
};
type InstantiateOptions = Pick<ModuleOptions, 'connection' | 'storageOptions'>;
type OptionsFactory = {
createOptions(): Promise<PartialModuleOptions> | PartialModuleOptions;
};
type ModuleAsyncOptions = Pick<ModuleMetadata, 'imports'> & {
isGlobal?: boolean;
useExisting?: Type<OptionsFactory>;
useClass?: Type<OptionsFactory>;
useFactory?: (...args: any[]) => Promise<PartialModuleOptions> | PartialModuleOptions;
inject?: any[];
scope?: Scope;
};
type GetAccountSasUrlResponse = {
sasUrl: string;
headers: Record<string, string | number>;
};
type GetContainerSasUrlResponse = {
sasUrl: string;
headers: Record<string, string | number>;
};
type GetBlockBlobSasUrlResponse = {
sasUrl: string;
headers: Record<string, string | number>;
};
declare class StorageBlobModule {
static forRoot(options: ModuleOptions): DynamicModule;
static forRootAsync(options: ModuleAsyncOptions): DynamicModule;
private static createAsyncProviders;
private static createAsyncOptionsProvider;
private static instantiate;
}
declare class StorageBlobService {
private readonly blobServiceClient;
private containerName?;
constructor(blobServiceClient: BlobServiceClient);
getClient(): BlobServiceClient;
getContainerName(): string | undefined;
convertToResourceTypes(resourceTypeMap?: Omit<AccountSASResourceTypes, 'toString'>): string;
getAccountSasUrl(expiresOn?: Date, permissions?: AccountSASPermissionsLike, resourceTypeMap?: Omit<AccountSASResourceTypes, 'toString'>, options?: ServiceGenerateAccountSasUrlOptions): GetAccountSasUrlResponse;
getContainerSasUrl(containerName: string, permissions?: ContainerSASPermissionsLike, options?: Omit<ContainerGenerateSasUrlOptions, 'permissions'>): Promise<GetContainerSasUrlResponse>;
getBlockBlobSasUrl(containerName: string, blobName: string, permissions?: BlobSASPermissionsLike, options?: Omit<BlobGenerateSasUrlOptions, 'permissions'>): Promise<GetBlockBlobSasUrlResponse>;
getUploadable(containerName: string, blobName: string, expiresIn?: number): Promise<{
upload: {
method: string;
url: string;
headers: Record<string, string | number>;
expiresIn: number;
};
download: {
method: string;
url: string;
expiresIn: number;
};
}>;
listFiles(destination: string, containerName: string): Promise<BlobItem[]>;
deleteFile(container: string, blob: string): Promise<_azure_storage_blob.BlobDeleteResponse>;
deleteFileIfExists(container: string, blob: string): Promise<_azure_storage_blob.BlobDeleteIfExistsResponse>;
downloadStream(container: string, blob: string): Promise<_azure_storage_blob.BlobDownloadResponseParsed>;
}
export { CONNECTION_VARIABLE, GetAccountSasUrlResponse, GetBlockBlobSasUrlResponse, GetContainerSasUrlResponse, InjectStorageBlob, InstantiateOptions, ModuleAsyncOptions, ModuleOptions, OptionsFactory, PartialModuleOptions, STORAGE_BLOB_CLIENT, STORAGE_BLOB_OPTIONS, StorageBlobModule, StorageBlobService };