UNPKG

alioss-mcp

Version:

为AI编码工具提供阿里云OSS访问能力的Model Context Protocol服务器

114 lines 3.49 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AliOssServer = void 0; const ali_oss_1 = __importDefault(require("ali-oss")); const path_1 = __importDefault(require("path")); class AliOssServer { accessKeyId; accessKeySecret; bucket; region; ossClient; constructor(accessKeyId, accessKeySecret, bucket, region = "oss-cn-beijing") { this.accessKeyId = accessKeyId; this.accessKeySecret = accessKeySecret; this.bucket = bucket; this.region = region; this.ossClient = new ali_oss_1.default({ accessKeyId: this.accessKeyId, accessKeySecret: this.accessKeySecret, bucket: this.bucket, region: this.region, }); } async uploadFile(fileName, file) { const result = await this.ossClient.put(fileName, path_1.default.normalize(file)); if (result.res.status === 200) { return result.url; } return null; } async downloadFile(fileName) { const result = await this.ossClient.get(fileName); if (result.res.status === 200) { return result.content; } return null; } async listObjects(prefix = "", maxKeys = 100) { const result = await this.ossClient.list({ prefix, "max-keys": maxKeys, }, {}); if (result.res.status === 200) { return { objects: result.objects, prefixes: result.prefixes, nextMarker: result.nextMarker, isTruncated: result.isTruncated, }; } return null; } async deleteObject(fileName) { const result = await this.ossClient.delete(fileName); if (result.res.status === 204) { return true; } return false; } async deleteMultipleObjects(fileNames) { const result = await this.ossClient.deleteMulti(fileNames); if (result.res.status === 200) { return { deleted: result.deleted, }; } return null; } async getObjectUrl(fileName, expires = 3600) { return this.ossClient.signatureUrl(fileName, { expires }); } async getObjectMeta(fileName) { const result = await this.ossClient.head(fileName); if (result.res.status === 200) { return { meta: result.meta, headers: result.res.headers, }; } return null; } async copyObject(source, target) { const result = await this.ossClient.copy(target, source); if (result.res.status === 200) { return { data: result.data, }; } return null; } async putObjectACL(fileName, acl) { try { await this.ossClient.putACL(fileName, acl); return true; } catch { return false; } } async getObjectACL(fileName) { const result = await this.ossClient.getACL(fileName); if (result.res && result.res.status === 200) { return { acl: result.acl, }; } return null; } } exports.AliOssServer = AliOssServer; //# sourceMappingURL=alioss.js.map