UNPKG

@ejekanshjain/cloud-storage

Version:

All in one package to handle files accross cloud storage services

40 lines 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AzureStorageClient = void 0; const storage_blob_1 = require("@azure/storage-blob"); const zod_1 = require("zod"); const AzureStorageClientOptionsZ = zod_1.z.object({ connectionString: zod_1.z.string().min(1), containerName: zod_1.z.string().min(1) }); const AzureStorageClient = (options) => { const { connectionString, containerName } = AzureStorageClientOptionsZ.parse(options); const blobServiceClient = storage_blob_1.BlobServiceClient.fromConnectionString(connectionString); const containerClient = blobServiceClient.getContainerClient(containerName); const addFile = async (options) => { const blockBlobClient = containerClient.getBlockBlobClient(options.filename); let data; if (typeof options.data === 'string') data = Buffer.from(options.data); else data = options.data; await blockBlobClient.uploadData(data); return blockBlobClient.url; }; const deleteFile = async (filename) => { const blockBlobClient = containerClient.getBlockBlobClient(filename); await blockBlobClient.delete(); }; const getFile = async (filename) => { const blockBlobClient = containerClient.getBlockBlobClient(filename); const buffer = await blockBlobClient.downloadToBuffer(); return Buffer.from(buffer); }; return { addFile, deleteFile, getFile }; }; exports.AzureStorageClient = AzureStorageClient; //# sourceMappingURL=azure.js.map