UNPKG

@qrvey/object-storage

Version:

![install size](https://packagephobia.com/badge?p=%40qrvey%2Fobject-storage) ![coverage](https://img.shields.io/badge/unit_test_coverage-8%25-brightgreen)

1 lines 110 kB
{"version":3,"sources":["../../src/services/storage/blob/blobStorage.service.ts","../../src/shared/utils/errorHandler.ts","../../src/services/storage/blob/blobHelpers.ts","../../src/services/storage/blob/blocIdStorage.ts","../../src/services/storage/s3/s3Storage.service.ts","../../src/services/storage/s3/s3Helpers.ts","../../../../node_modules/@smithy/types/dist-es/auth/auth.js","../../../../node_modules/@smithy/types/dist-es/auth/HttpApiKeyAuth.js","../../../../node_modules/@smithy/types/dist-es/endpoint.js","../../../../node_modules/@smithy/types/dist-es/extensions/checksum.js","../../../../node_modules/@smithy/types/dist-es/http.js","../../../../node_modules/@smithy/types/dist-es/profile.js","../../../../node_modules/@smithy/types/dist-es/transfer.js","../../../../node_modules/@smithy/protocol-http/dist-es/httpResponse.js","../../../../node_modules/@smithy/util-uri-escape/dist-es/escape-uri.js","../../../../node_modules/@smithy/querystring-builder/dist-es/index.js","../../../../node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js","../../../../node_modules/@smithy/node-http-handler/dist-es/constants.js","../../../../node_modules/@smithy/node-http-handler/dist-es/get-transformed-headers.js","../../../../node_modules/@smithy/node-http-handler/dist-es/set-connection-timeout.js","../../../../node_modules/@smithy/node-http-handler/dist-es/set-socket-keep-alive.js","../../../../node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js","../../../../node_modules/@smithy/node-http-handler/dist-es/write-request-body.js","../../../../node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-pool.js","../../src/shared/utils/constants.ts","../../src/services/objectStorageFactory.service.ts","../../src/services/objectStorage.service.ts"],"names":["stream","HttpAuthLocation","HttpApiKeyAuthLocation","EndpointURLScheme","AlgorithmId","FieldPosition","IniSectionType","RequestHandlerProtocol"],"mappings":"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","sourcesContent":["/* eslint-disable no-console */\nimport stream from 'stream';\nimport { IObjectStorage, IGetObjectOptions } from '../../../interfaces';\nimport {\n FileContent,\n ListResponse,\n UploadResponse,\n GetObjectResponse,\n ListRequestOptions,\n ListResponseItem,\n GetUploadUrlResponse,\n CreateUploadWriteStreamResponse,\n HeadBucketResponse,\n ListPartsMultipartUploadResponse,\n ListMultipartUploadsResponse,\n} from '../../../types';\nimport {\n BlobServiceClient,\n BlobSASPermissions,\n BlobItem,\n ContainerClient,\n} from '@azure/storage-blob';\n\nimport { Readable } from 'stream';\nimport { ErrorHandler } from '../../../shared/utils/errorHandler';\nimport { BlobPropertiesResponseToObjectResponse } from './blobHelpers';\nimport { BlockIdStorage } from './blocIdStorage';\nexport class BlobStorageService implements IObjectStorage {\n private blobServiceClient: BlobServiceClient;\n private containerName: string;\n\n /**\n * Retrieves the properties of a blob from the container by its name.\n *\n * @param {string} blobName - The name of the blob.\n * @return {Promise<GetObjectResponse>} A promise that resolves to the blob properties.\n */\n constructor(containerName: string) {\n this.containerName = containerName;\n this.blobServiceClient = BlobServiceClient.fromConnectionString(\n process.env.AZURE_STORAGE_CONNECTION_STRING!,\n );\n }\n\n /**\n * Creates a writable stream for uploading a file to the Blob storage.\n *\n * @param {string} blobName - The name of the blob to upload.\n * @return {CreateUploadWriteStreamResponse} An object containing the key of the uploaded blob, the writable stream, and a promise that resolves when the upload is complete.\n */\n createUploadWriteStream(blobName: string): CreateUploadWriteStreamResponse {\n const streamPassThrough = new stream.PassThrough();\n const containerClient = this.blobServiceClient.getContainerClient(\n this.containerName,\n );\n const blockBlobClient = containerClient.getBlockBlobClient(blobName);\n\n const uploadPromise = blockBlobClient\n .uploadStream(streamPassThrough, undefined, undefined, {\n onProgress: (ev) => console.log(ev),\n })\n .then(() => {\n return { Bucket: this.containerName, Key: blobName };\n });\n\n return {\n key: blobName,\n stream: streamPassThrough,\n promise: uploadPromise,\n };\n }\n\n /**\n * Retrieves the properties of a blob from the container by its name.\n *\n * @param {string} blobName - The name of the blob.\n * @return {Promise<GetObjectResponse>} A promise that resolves to the blob properties.\n */\n async getHeadObject(blobName: string): Promise<GetObjectResponse> {\n try {\n const containerClient = this.blobServiceClient.getContainerClient(\n this.containerName,\n );\n const blockBlobClient =\n containerClient.getBlockBlobClient(blobName);\n const blobProperties = await blockBlobClient.getProperties();\n return BlobPropertiesResponseToObjectResponse(blobProperties);\n } catch (error) {\n throw ErrorHandler.handleError('DEFAULT', '', error as Error);\n }\n }\n\n /**\n * Retrieves an object from the blob storage service.\n *\n * @param {string} blobName - The name of the blob to retrieve.\n * @param {Object} [options] - The options that you can pass to the library.\n * @return {Promise<GetObjectResponse>} A promise that resolves to the object data, including the body, metadata, content type, and content length, or rejects with an error if there was an issue.\n */\n async getObject(\n blobName: string,\n options?: IGetObjectOptions,\n ): Promise<GetObjectResponse> {\n try {\n let downloadBlockBlobResponse;\n const containerClient = this.blobServiceClient.getContainerClient(\n this.containerName,\n );\n const blockBlobClient =\n containerClient.getBlockBlobClient(blobName);\n const expression = options?.range || '';\n const matches = expression.match(/\\d+/g);\n if (expression && matches?.length) {\n const [start, end] = matches.map(Number);\n downloadBlockBlobResponse = await blockBlobClient.download(\n start,\n end,\n );\n } else {\n downloadBlockBlobResponse = await blockBlobClient.download(0);\n }\n return {\n body: downloadBlockBlobResponse.readableStreamBody as Readable,\n metadata: downloadBlockBlobResponse.metadata,\n contentType: downloadBlockBlobResponse.contentType,\n contentLength: downloadBlockBlobResponse.contentLength,\n };\n } catch (error: any) {\n let errorKey = 'DEFAULT';\n if (error?.response?.status === 404) {\n errorKey = 'ObjectNotFound';\n }\n throw ErrorHandler.handleError(errorKey, '', error as Error);\n }\n }\n\n private async getSignatureUrl(\n blobName: string,\n expiresInMinutes: number,\n permissions: string,\n ): Promise<string> {\n try {\n const containerClient = this.blobServiceClient.getContainerClient(\n this.containerName,\n );\n const blockBlobClient =\n containerClient.getBlockBlobClient(blobName);\n\n const startDate = new Date();\n const expiryDate = new Date(startDate);\n expiryDate.setMinutes(startDate.getMinutes() + expiresInMinutes);\n\n return blockBlobClient.generateSasUrl({\n permissions: BlobSASPermissions.parse(permissions),\n startsOn: startDate,\n expiresOn: expiryDate,\n });\n } catch (error) {\n throw ErrorHandler.handleError('DEFAULT', '', error as Error);\n }\n }\n\n async getUploadUrl(\n blobName: string,\n expiresInMinutes: number,\n ): Promise<GetUploadUrlResponse> {\n try {\n const sasUrl = await this.getSignatureUrl(\n blobName,\n expiresInMinutes,\n 'w',\n );\n return { key: blobName, signedUrl: sasUrl };\n } catch (error) {\n throw ErrorHandler.handleError('DEFAULT', '', error as Error);\n }\n }\n\n /**\n * Retrieves a signed URL for the blob with the specified name that expires after a certain period.\n *\n * @param {string} blobName - The name of the blob to generate the signed URL for.\n * @param {number} expiresInMinutes - The duration in minutes until the signed URL expires.\n * @return {Promise<string>} A Promise that resolves with the signed URL.\n */\n async getDownloadUrl(\n blobName: string,\n expiresInMinutes: number,\n ): Promise<string> {\n try {\n const sasUrl = await this.getSignatureUrl(\n blobName,\n expiresInMinutes,\n 'r',\n );\n return sasUrl;\n } catch (error) {\n throw ErrorHandler.handleError('DEFAULT', '', error as Error);\n }\n }\n\n /**\n * Uploads a file to the blob storage service.\n *\n * @param {string} blobName - The name of the blob to upload.\n * @param {FileContent} body - The content of the file to upload.\n * @param {{ [key: string]: string } | undefined} [metadata] - Optional metadata to associate with the blob.\n * @return {Promise<UploadResponse>} A promise that resolves to the response object containing the key of the uploaded blob, or rejects with an error if there was an issue.\n */\n async upload(\n blobName: string,\n body: FileContent,\n metadata: { [key: string]: string } = {},\n ): Promise<UploadResponse> {\n try {\n const containerClient = this.blobServiceClient.getContainerClient(\n this.containerName,\n );\n const blockBlobClient =\n containerClient.getBlockBlobClient(blobName);\n Buffer.isBuffer(body)\n ? await blockBlobClient.upload(body, body.length, { metadata })\n : await blockBlobClient.uploadStream(\n body as Readable,\n undefined,\n undefined,\n { metadata },\n );\n\n return { key: blobName };\n } catch (error) {\n throw ErrorHandler.handleError('DEFAULT', '', error as Error);\n }\n }\n\n /**\n * Deletes a blob from the blob storage service.\n *\n * @param {string} blobName - The name of the blob to be deleted.\n * @return {Promise<boolean>} A promise that resolves to true if the blob is successfully deleted, or rejects with an error if there was an issue.\n */\n async delete(data: string): Promise<boolean> {\n try {\n const containerClient = this.blobServiceClient.getContainerClient(\n this.containerName,\n );\n return this.deleteObject(containerClient, data);\n } catch (error) {\n throw ErrorHandler.handleError('DEFAULT', '', error as Error);\n }\n }\n\n /**\n * Lists a chunk of blobs from the specified container client based on the provided options and continuation token.\n *\n * @param {ListRequestOptions} options - The options for listing the blobs.\n * @param {string | undefined} continuationToken - The continuation token for pagination.\n * @param {number} limit - The maximum number of blobs to list in a single page.\n * @param {ContainerClient} containerClient - The container client to list the blobs from.\n * @return {Promise<{ items: BlobItem[]; continuationToken?: string }>} - A promise that resolves to an object containing the list of blob items and an optional continuation token.\n */\n private async listChunk(\n options: ListRequestOptions,\n continuationToken: string | undefined,\n limit: number,\n containerClient: ContainerClient,\n ): Promise<{ items: BlobItem[]; continuationToken?: string }> {\n const iterator = containerClient\n .listBlobsFlat({\n prefix: options.prefix,\n })\n .byPage({\n maxPageSize: limit,\n continuationToken: continuationToken,\n });\n\n const items: BlobItem[] = [];\n const response = (await iterator.next()).value;\n items.push(...response.segment.blobItems);\n return {\n items,\n continuationToken: response.continuationToken,\n };\n }\n\n /**\n * Retrieves a list of blob contents based on the provided options.\n *\n * @param {ListRequestOptions} options - The options for listing the blob contents.\n * @return {Promise<{ contents: BlobItem[]; nextContinuationToken?: string }>} A promise that resolves to the list of blob contents and the next continuation token.\n */\n private async listContents(\n options: ListRequestOptions,\n ): Promise<{ contents: BlobItem[]; nextContinuationToken?: string }> {\n let responseContents: BlobItem[] = [];\n let continuationToken: string | undefined = options.pagination;\n const limit = options.limit ?? 1000;\n let continueListing = true;\n const containerClient = this.blobServiceClient.getContainerClient(\n this.containerName,\n );\n while (continueListing) {\n const response = await this.listChunk(\n options,\n continuationToken,\n limit - responseContents.length,\n containerClient,\n );\n continuationToken = response.continuationToken;\n responseContents = responseContents.concat(response.items);\n\n if (responseContents.length >= limit || !continuationToken) {\n continueListing = false;\n }\n }\n\n return {\n contents: responseContents,\n nextContinuationToken: continuationToken,\n };\n }\n\n /**\n * Lists blobs in the Azure Blob Storage container with pagination.\n * @param options - The options for listing blobs.\n * @returns A promise that resolves to a paginated list of blob names.\n */\n async list(options: ListRequestOptions): Promise<ListResponse> {\n let items: ListResponseItem[] = [];\n const response = await this.listContents(options);\n\n items = response.contents.length\n ? response.contents.map((blob) => {\n return {\n key: blob.name,\n lastModified: blob.properties.lastModified,\n size: blob.properties.contentLength!,\n eTag: blob.properties.etag,\n };\n })\n : [];\n\n return {\n items,\n pagination: response.nextContinuationToken?.length\n ? response.nextContinuationToken\n : null,\n count: items.length,\n };\n }\n\n /**\n * Lists all blobs in the Azure Blob Storage container.\n * @param options - The options for listing blobs.\n * @returns A promise that resolves to list of blob names.\n */\n async listAll(options: ListRequestOptions): Promise<ListResponse> {\n let allItems: ListResponseItem[] = [];\n let pagination: string | undefined = undefined;\n\n do {\n const response: ListResponse = await this.list({\n ...options,\n pagination,\n });\n\n if (response.items?.length)\n allItems = [...allItems, ...response.items];\n\n pagination = response.pagination ?? undefined;\n } while (pagination);\n\n return { items: allItems, count: allItems.length };\n }\n\n /**\n * Deletes a blob from the blob storage service.\n *\n * @param {string} blobName - The name of the blob to be deleted.\n * @return {Promise<boolean>} A promise that resolves to true if the blob is successfully deleted, or rejects with an error if there was an issue.\n */\n async deleteObject(\n containerClient: ContainerClient,\n blobName: string,\n ): Promise<boolean> {\n try {\n const blockBlobClient =\n containerClient.getBlockBlobClient(blobName);\n await blockBlobClient.delete();\n return true;\n } catch (error) {\n throw ErrorHandler.handleError('DEFAULT', '', error as Error);\n }\n }\n\n /**\n * Deletes multiple blobs from the blob storage service.\n *\n * @param {string[]} blobNames - An array of blob names to be deleted.\n * @return {Promise<{ key: string; deleted: boolean; error?: string }[]>} - A promise that resolves to an array of objects containing the key, deleted status, and an optional error message for each blob deleted.\n */\n async deleteObjects(\n blobNames: string[],\n ): Promise<{ key: string; deleted: boolean; error?: string }[]> {\n const containerClient = this.blobServiceClient.getContainerClient(\n this.containerName,\n );\n const deleteBlobPromises = blobNames.map(async (blobName) => {\n try {\n await this.deleteObject(containerClient, blobName);\n return { key: blobName, deleted: true };\n } catch (error: any) {\n return {\n key: blobName,\n deleted: false,\n error: error?.message ?? '',\n };\n }\n });\n return Promise.all(deleteBlobPromises);\n }\n\n /**\n * Retrieves the properties of the container.\n *\n * @return {Promise<HeadBucketResponse>} A promise that resolves to the container properties.\n */\n async getHeadBucket(): Promise<HeadBucketResponse> {\n try {\n const containerClient = this.blobServiceClient.getContainerClient(\n this.containerName,\n );\n const properties = await containerClient.getProperties();\n return properties;\n } catch (error) {\n throw new Error(\n 'Error in Azure getHeadContainer. Container: ' +\n this.containerName +\n ' Error: ' +\n error,\n );\n }\n }\n\n async listMultipartUploadsForBucket(): Promise<ListMultipartUploadsResponse> {\n const containerClient = this.blobServiceClient.getContainerClient(\n this.containerName,\n );\n const blobList = containerClient.listBlobsFlat();\n\n const uploads = [];\n\n for await (const blob of blobList) {\n uploads.push({\n uploadId: blob.name,\n key: blob.name,\n initiated: blob.properties.createdOn || new Date(),\n });\n }\n\n return {\n bucketName: this.containerName,\n uploads,\n };\n }\n\n /**\n * Retrieves the list of parts for a multipart upload.\n *\n * @param {string} blobName - The name of the blob (file) in Azure Blob Storage.\n * @return {Promise<ListPartsMultipartUploadResponse>} A promise that resolves to the list of parts for the multipart upload.\n */\n async listMultipartUploadsForKey(\n blobName: string,\n ): Promise<ListPartsMultipartUploadResponse> {\n const containerClient = this.blobServiceClient.getContainerClient(\n this.containerName,\n );\n const blobClient = containerClient.getBlockBlobClient(blobName);\n const listResponse = await blobClient.getBlockList('all');\n const parts =\n listResponse?.uncommittedBlocks?.map((block, index) => ({\n PartNumber: index + 1,\n LastModified: new Date(), // Azure Blob Storage doesn't provide the last modified date for individual parts\n ETag: block.name,\n Size: block.size,\n })) || [];\n return {\n Parts: parts,\n };\n }\n\n /**\n * Generates a unique upload ID for multipart uploads.\n *\n * @return {Promise<string>} A promise that resolves to a unique upload ID.\n */\n async generateUploadIdMultipart(): Promise<string> {\n const timestamp = Date.now();\n const randomNum = Math.floor(Math.random() * 100);\n const blockIdBase = (timestamp - randomNum).toString();\n return blockIdBase;\n }\n\n /**\n * Uploads a part of a file as a block to Azure Blob Storage and updates the metadata with th