@ejekanshjain/cloud-storage
Version:
All in one package to handle files accross cloud storage services
40 lines • 1.59 kB
JavaScript
;
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