import OSS from 'ali-oss'; import * as fs from "fs-extra-plus"; import GitRevisionPlugin from 'git-revision-webpack-plugin'; import * as path from "path"; import * as rq from "request-promise-native"; import { getFiles } from './utils'; let branch = new GitRevisionPlugin().branch(); let dir = path.resolve("./dist"); let files = getFiles(dir, []).filter(f => path.extname(f) !== ".map" && ("manifest.json" !== path.basename(f))); let formData = { BranchName: branch, }; if (formData.BranchName === "master") formData.BranchName = ""; for (let f of files) formData[f.substring(dir.length + 1)] = fs.createReadStream(f); let url = "http://publish.cfcad.cn:3000/upload"; // let url = `http://127.0.0.1:3000/upload`; rq.post({ url: url, formData: formData }, function optionalCallback(err, httpResponse, body) { if (err || body !== "ok") return console.error('部署失败!', err); else { console.info(`部署成功!`); console.log(`http://t.cfcad.cn/${formData.BranchName}`); } }); async function up2oss() { if (!process.env.OSS_ACCESS_KEY_ID) return; const oss = new OSS({ region: 'oss-rg-china-mainland', accessKeyId: process.env.OSS_ACCESS_KEY_ID, accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET, bucket: 'webcad', }); if (branch === "master") branch = ""; let files = await fs.glob("./dist/**/*"); for (let file of files) { let name = file.substring(7); if (branch) name = branch + "/" + name; if (path.extname(file) === ".map") continue; if (path.basename(file) === "manifest.json") continue; try { const uploadResult = await oss.put(name, file); console.log('上传成功:', name); const getResult = await oss.get(name); console.log('获取文件成功:', name); } catch (error) { console.error('发生错误:', error); } } console.log("上传完成!"); } up2oss();