UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

146 lines (141 loc) 3.9 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tencentCloud_cos_helper = require('./helper.js'); require('../../bite/format-bite.js'); var pushFiles = function pushFiles(_a) { var files = _a.files, bucket = _a.bucket, region = _a.region; return files.map(function (file) { return { Bucket: bucket, Region: region, Key: file.key, FilePath: file.path }; }); }; /** * COS上传 * @param {object} config 配置信息 * @param {Array<object>} config.files 文件列表 * @param {string} config.files.key 文件key * @param {string} config.files.path 文件路径 * @param {string} config.secretId COS secretId * @param {string} config.secretKey COS secretKey * @param {string} config.bucket COS bucket * @param {string} config.region COS region * @returns {Promise<object>} 请求Promise * * @example * * uploadCOSFile({ * files: [{ * key: 'key1', * path: 'path1', * }, { * key: 'key2', * path: 'path2', * }], * secretId: 'xxx', * secretKey: 'xxx', * bucket: 'xxx', * region: 'xxx', * }) */ function uploadCOSFile(_a) { var files = _a.files, secretId = _a.secretId, secretKey = _a.secretKey, bucket = _a.bucket, region = _a.region; return new Promise(function (resolve, reject) { if (!secretId || !secretKey || !bucket || !region || !files) { reject('[Upload COS Error] 参数不全'); return; } if (!files.length) { reject('[Upload COS Error] 上传文件不能为空'); return; } var cos = tencentCloud_cos_helper.getCOSInstance(secretId, secretKey); var fileList = pushFiles({ files: files, bucket: bucket, region: region }); cos.uploadFiles({ files: fileList, SliceSize: 1024 * 1024, onProgress: tencentCloud_cos_helper.onUploadCOSProgress, onFileFinish: function onFileFinish(err, data, options) { resolve(data); console.log("[uploadCOSFile] \u4E0A\u4F20".concat(err ? '失败' : '完成', ": ").concat(options.Key)); } }, function (err, data) { reject(err || data); }); }); } function getCOSBucketList(_a) { var secretId = _a.secretId, secretKey = _a.secretKey, bucket = _a.bucket, region = _a.region, prefix = _a.prefix; return new Promise(function (resolve, reject) { if (!secretId || !secretKey || !bucket || !region) { reject('[Get COS List Error] 参数不全'); return; } var cos = tencentCloud_cos_helper.getCOSInstance(secretId, secretKey); cos.getBucket({ Bucket: bucket, Region: region, Prefix: prefix /* 非必须 */ }, function (err, data) { if (err) { reject(err); } else { resolve(data.Contents); } }); }); } function deleteCOSMultipleObject(_a) { var secretId = _a.secretId, secretKey = _a.secretKey, keys = _a.keys, bucket = _a.bucket, region = _a.region; return new Promise(function (resolve, reject) { if (!secretId || !secretKey || !bucket || !keys) { reject('[Delete COS Object Error] 参数不全'); return; } if (!keys.length) { reject('[Delete COS Object Error] 删除keys不能为空'); return; } var cos = tencentCloud_cos_helper.getCOSInstance(secretId, secretKey); cos.deleteMultipleObject({ Bucket: bucket, Region: region, /* 存储在桶里的对象键(例如1.jpg,a/b/test.txt),必须字段 */ Objects: keys.map(function (item) { return { Key: item }; }) }, function (err, data) { if (err) { reject(err); } else { resolve(data); } }); }); } exports.deleteCOSMultipleObject = deleteCOSMultipleObject; exports.getCOSBucketList = getCOSBucketList; exports.uploadCOSFile = uploadCOSFile;