|
@@ -5,7 +5,14 @@ const path = require("path");
|
|
|
const fs = require("fs");
|
|
|
const oss = require("ali-oss");
|
|
|
const { execSync } = require("child_process");
|
|
|
+
|
|
|
+// 获取需要更新的文件
|
|
|
+const NewFiles = (process.argv[2] || "").split("=")[1];
|
|
|
+console.log(NewFiles);
|
|
|
+
|
|
|
+
|
|
|
class saveOssGitte {
|
|
|
+ deleteFiles = [];
|
|
|
constructor() {
|
|
|
this.localDir = "dist/";
|
|
|
this.baseOssDir = "topic/activity/";
|
|
@@ -17,7 +24,8 @@ class saveOssGitte {
|
|
|
bucket: "smcic-index",
|
|
|
});
|
|
|
this.execFun();
|
|
|
- this.delDir();
|
|
|
+ if (!NewFiles) this.delDir();
|
|
|
+ else this.delOneDir(NewFiles);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -63,6 +71,70 @@ class saveOssGitte {
|
|
|
console.log("数据上传oss---失败");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除指定文件
|
|
|
+ * @param {string} pathDir
|
|
|
+ */
|
|
|
+ async delOneDir(pathDir) {
|
|
|
+ try {
|
|
|
+ await this.client.delete(this.baseOssDir + pathDir + ".html");
|
|
|
+ await this.client.delete(this.baseOssDir + "/js/" + pathDir + ".js");
|
|
|
+ deleteFiles.push(this.baseOssDir + pathDir + ".html");
|
|
|
+ deleteFiles.push(this.baseOssDir + "/js/" + pathDir + ".js");
|
|
|
+ // 查找静态资源下对应的文件
|
|
|
+ let listimage = await this.client.list({
|
|
|
+ prefix: this.baseOssDir + "/image",
|
|
|
+ });
|
|
|
+ let listmedia = await this.client.list({
|
|
|
+ prefix: this.baseOssDir + "/media",
|
|
|
+ });
|
|
|
+ let listfonts = await this.client.list({
|
|
|
+ prefix: this.baseOssDir + "/fonts",
|
|
|
+ });
|
|
|
+ console.log(listimage);
|
|
|
+ console.log(listmedia);
|
|
|
+ console.log(listfonts);
|
|
|
+ // let imageList = listimage.objects.filter(v => v.name.includes(pathDir));
|
|
|
+ // let mediaList = listmedia.objects.filter(v => v.name.includes(pathDir));
|
|
|
+ // let fontsList = listfonts.objects.filter(v => v.name.includes(pathDir));
|
|
|
+ // await Promise.all(
|
|
|
+ // imageList.map(async v => {
|
|
|
+ // try {
|
|
|
+ // await this.client.delete(v.name); // 删除文件
|
|
|
+ // deleteFiles.push(v.name);
|
|
|
+
|
|
|
+ // } catch (err) {
|
|
|
+ // err.failObjectName = v.name;
|
|
|
+ // return err;
|
|
|
+ // }
|
|
|
+ // }),
|
|
|
+ // mediaList.map(async v => {
|
|
|
+ // try {
|
|
|
+ // await this.client.delete(v.name); // 删除文件
|
|
|
+ // deleteFiles.push(v.name);
|
|
|
+ // } catch (err) {
|
|
|
+ // err.failObjectName = v.name;
|
|
|
+ // return err;
|
|
|
+ // }
|
|
|
+ // }),
|
|
|
+ // fontsList.map(async v => {
|
|
|
+ // try {
|
|
|
+ // await this.client.delete(v.name); // 删除文件
|
|
|
+ // deleteFiles.push(v.name);
|
|
|
+ // } catch (err) {
|
|
|
+ // err.failObjectName = v.name;
|
|
|
+ // return err;
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // )
|
|
|
+ console.log("oss文件清除---完成");
|
|
|
+ } catch (err) {
|
|
|
+ console.log("oss文件清除---失败");
|
|
|
+ console.error(err);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取localDir下的所有文件路径
|
|
|
* @param {string} pathDir
|
|
@@ -110,3 +182,5 @@ class saveOssGitte {
|
|
|
}
|
|
|
|
|
|
new saveOssGitte();
|
|
|
+
|
|
|
+
|