UNPKG

@andrewlwn77/s3-upload-mcp-server

Version:

Pure Node.js MCP server for uploading images to AWS S3 with high-performance validation using Sharp and file-type

68 lines 2.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BucketManagementService = void 0; const s3_client_1 = require("../infrastructure/s3-client"); const config_1 = require("../utils/config"); const logger_1 = require("../utils/logger"); class BucketManagementService { constructor() { this.s3Client = new s3_client_1.S3Client(); this.configManager = config_1.ConfigManager.getInstance(); this.logger = logger_1.Logger.getInstance(); } async createBucketIfNotExists(bucketName, region = 'us-east-1', enablePublicRead = false) { try { // Validate bucket name this.configManager.validateBucket(bucketName); this.logger.info('Creating bucket if not exists', { bucketName, region, enablePublicRead }); const result = await this.s3Client.createBucket(bucketName, region, enablePublicRead); if (!result.success) { return result; } this.logger.info('Bucket operation completed', { bucket: bucketName, created: result.created, alreadyExists: result.already_exists, publicRead: result.public_read_enabled }); return result; } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Unknown bucket creation error'; this.logger.error('Bucket creation service failed', { error: errorMessage, bucketName }); return { success: false, error: { code: 'BUCKET_ERROR', message: errorMessage } }; } } async setBucketPublicReadPolicy(bucketName) { try { // Validate bucket name this.configManager.validateBucket(bucketName); this.logger.info('Setting bucket public read policy', { bucketName }); const result = await this.s3Client.setBucketPublicReadPolicy(bucketName); if (!result.success) { return result; } this.logger.info('Bucket policy applied successfully', { bucket: bucketName }); return result; } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Unknown bucket policy error'; this.logger.error('Bucket policy service failed', { error: errorMessage, bucketName }); return { success: false, error: { code: 'BUCKET_ERROR', message: errorMessage } }; } } } exports.BucketManagementService = BucketManagementService; //# sourceMappingURL=bucket-management-service.js.map