@less-is-more/less-js 1.3.7 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@less-is-more/less-js",
3
- "version": "1.3.7",
3
+ "version": "1.4.0",
4
4
  "description": "Fast develop kit for nodejs",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -18,10 +18,12 @@
18
18
  "license": "MIT",
19
19
  "dependencies": {
20
20
  "@alicloud/pop-core": "^1.7.10",
21
+ "ali-oss": "^6.17.1",
21
22
  "axios": "^0.27.2",
22
23
  "body": "^5.1.0",
23
24
  "ejs": "^3.1.6",
24
25
  "fs-extra": "^10.0.0",
26
+ "images": "^3.2.4",
25
27
  "inquirer": "^8.2.0",
26
28
  "multiparty": "^4.2.2",
27
29
  "mysql2": "^2.3.3",
@@ -29,6 +31,7 @@
29
31
  "qs": "^6.11.0",
30
32
  "redis": "^4.0.1",
31
33
  "sequelize": "^6.13.0",
34
+ "uuid": "^9.0.0",
32
35
  "validator": "^13.7.0"
33
36
  },
34
37
  "devDependencies": {
package/src/oss.js ADDED
@@ -0,0 +1,51 @@
1
+ const OSS = require("ali-oss");
2
+ const uuid = require("uuid");
3
+ const Ret = require("./ret");
4
+ const images = require("images");
5
+
6
+ module.exports = class Oss {
7
+ static async upload(
8
+ path,
9
+ reqFile,
10
+ prefix,
11
+ accessKeyId,
12
+ accessKeySecret,
13
+ stsToken,
14
+ region,
15
+ bucket,
16
+ toWidth
17
+ ) {
18
+ const client = new OSS({
19
+ region: "oss-" + region,
20
+ accessKeyId,
21
+ accessKeySecret,
22
+ stsToken,
23
+ bucket,
24
+ endpoint: "oss-" + region + ".aliyuncs.com",
25
+ });
26
+ let id = uuid.v4().replace(/-/g, "");
27
+
28
+ // 计算文件名
29
+ const fileName = reqFile.originalFilename;
30
+ let subfix = "";
31
+ if (fileName.includes(".")) {
32
+ subfix = fileName.split(".").pop();
33
+ }
34
+ let filePath = reqFile.path;
35
+ if (toWidth) {
36
+ let imageObject = images(filePath);
37
+ if (toWidth < imageObject.width()) {
38
+ imageObject.size(toWidth).save(filePath);
39
+ }
40
+ }
41
+ let result = await client.put(
42
+ path + "/" + prefix + "-" + id + "." + subfix,
43
+ filePath
44
+ );
45
+ if (result.res.status == 200) {
46
+ return new Ret(true).setData({ imgUrl: result.url });
47
+ } else {
48
+ return new Ret(false);
49
+ }
50
+ }
51
+ };
package/src/router.js CHANGED
@@ -72,9 +72,12 @@ module.exports = class Router {
72
72
  console.log("queries:", req.queries ? JSON.stringify(req.queries) : "");
73
73
  const isFile =
74
74
  req.headers &&
75
- JSON.stringify(req.headers).includes("multipart/form-data");
75
+ req.headers["content-type"] &&
76
+ req.headers["content-type"].includes("multipart/form-data");
76
77
  const isJson =
77
- req.headers && req.headers["content-type"].includes("application/json");
78
+ req.headers &&
79
+ req.headers["content-type"] &&
80
+ req.headers["content-type"].includes("application/json");
78
81
  console.log("multipart:", isFile);
79
82
  if (req.method == "POST") {
80
83
  if (isFile) {
@@ -0,0 +1,44 @@
1
+ const Oss = require("../src/oss.js");
2
+
3
+ describe("oss.js", () => {
4
+ before(() => {});
5
+
6
+ describe("upload()", () => {
7
+ it("ok", async () => {
8
+ const file = {
9
+ path: "C:/Users/shang/Pictures/sheng-logo.png",
10
+ originalFilename: "aa.png",
11
+ };
12
+ const result = await Oss.upload(
13
+ "test",
14
+ file,
15
+ "pp",
16
+ "STS.NTUbtKE7Pg9PKUrLUcZSQz7hu",
17
+ "LzbHBAGXRmMupuiNZ2BQ9dJMExBeXmsPQVhy8tAS47F",
18
+ "CAIShgJ1q6Ft5B2yfSjIr5fgKc7/qOhx0Pu7SXPDqFU2Vtx9lfLDlzz2IH1MeXduBuAZsfk2nGpT7fgelqZdVplOWU3Da+B364xK7Q75kkZFRBntv9I+k5SANTW5KXyShb3/AYjQSNfaZY3eCTTtnTNyxr3XbCirW0ffX7SClZ9gaKZ8PGD6F00kYu1bPQx/ssQXGGLMPPK2SH7Qj3HXEVBjt3gX6wo9y9zmn5LGskWD3QWgkrRO/tmtGPX+MZkwZqUYesyuwel7epDG1CNt8BVQ/M909vcZoWqZ4I7NXAYMuk3caLGKrscfBQt4d7U8NYVgq/fRhfBzp/DSkILNzBJALV/Y0qNT2WHLGoABNL6fyhkkj9OpoxKO6i3P/FceZOAwkFqVtte+GZddNBOLhI9fayz8GhiImYJSXTbzITrLxHlSzgg8qErn8d2K+YXF5lhUcucWwsT9piYzfICMv/UsAOgp6d6o+WmjNzrwd5soMde8TC/yRbNkDmQTnjS8RvnEJK7lkUr3xYZHE48=",
19
+ "cn-shenzhen",
20
+ "shengapp-dev"
21
+ );
22
+ console.log(result);
23
+ });
24
+
25
+ it("set size", async () => {
26
+ const file = {
27
+ path: "C:/Users/shang/Pictures/sheng-logo.png",
28
+ originalFilename: "aa.png",
29
+ };
30
+ const result = await Oss.upload(
31
+ "test",
32
+ file,
33
+ "pp",
34
+ "STS.NTUbtKE7Pg9PKUrLUcZSQz7hu",
35
+ "LzbHBAGXRmMupuiNZ2BQ9dJMExBeXmsPQVhy8tAS47F",
36
+ "CAIShgJ1q6Ft5B2yfSjIr5fgKc7/qOhx0Pu7SXPDqFU2Vtx9lfLDlzz2IH1MeXduBuAZsfk2nGpT7fgelqZdVplOWU3Da+B364xK7Q75kkZFRBntv9I+k5SANTW5KXyShb3/AYjQSNfaZY3eCTTtnTNyxr3XbCirW0ffX7SClZ9gaKZ8PGD6F00kYu1bPQx/ssQXGGLMPPK2SH7Qj3HXEVBjt3gX6wo9y9zmn5LGskWD3QWgkrRO/tmtGPX+MZkwZqUYesyuwel7epDG1CNt8BVQ/M909vcZoWqZ4I7NXAYMuk3caLGKrscfBQt4d7U8NYVgq/fRhfBzp/DSkILNzBJALV/Y0qNT2WHLGoABNL6fyhkkj9OpoxKO6i3P/FceZOAwkFqVtte+GZddNBOLhI9fayz8GhiImYJSXTbzITrLxHlSzgg8qErn8d2K+YXF5lhUcucWwsT9piYzfICMv/UsAOgp6d6o+WmjNzrwd5soMde8TC/yRbNkDmQTnjS8RvnEJK7lkUr3xYZHE48=",
37
+ "cn-shenzhen",
38
+ "shengapp-dev",
39
+ 50
40
+ );
41
+ console.log(result);
42
+ });
43
+ });
44
+ });