@qxs-bns/utils 0.0.14 → 0.0.15

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.
@@ -1,13 +1,13 @@
1
- var u = Object.defineProperty;
2
- var g = (r, e, t) => e in r ? u(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
3
- var a = (r, e, t) => g(r, typeof e != "symbol" ? e + "" : e, t);
4
- import y from "../_virtual/aliyun-oss-sdk.mjs";
1
+ var g = Object.defineProperty;
2
+ var y = (r, e, t) => e in r ? g(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
3
+ var a = (r, e, t) => y(r, typeof e != "symbol" ? e + "" : e, t);
4
+ import w from "../_virtual/aliyun-oss-sdk.mjs";
5
5
  class o extends Error {
6
6
  constructor(e) {
7
7
  super(e), this.name = "OssError";
8
8
  }
9
9
  }
10
- const h = {
10
+ const d = {
11
11
  accessKeyId: "",
12
12
  accessKeySecret: "",
13
13
  stsToken: "",
@@ -37,40 +37,40 @@ class n {
37
37
  }
38
38
  // 修改初始化方法
39
39
  static async initOssClient(e, t) {
40
- const c = Date.now() - this.createTokenTime;
41
- if (!h.accessKeyId || c > this.expireTime)
40
+ const i = Date.now() - this.createTokenTime;
41
+ if (!d.accessKeyId || i > this.expireTime)
42
42
  try {
43
- const { accessKeyId: s, accessKeySecret: l, securityToken: i } = await this.getOssCredentials(e);
44
- Object.assign(h, {
43
+ const { accessKeyId: s, accessKeySecret: l, securityToken: h } = await this.getOssCredentials(e);
44
+ Object.assign(d, {
45
45
  accessKeyId: s,
46
46
  accessKeySecret: l,
47
- stsToken: i,
47
+ stsToken: h,
48
48
  ...t,
49
49
  refreshSTSToken: async () => await this.getOssCredentials(e),
50
50
  refreshSTSTokenInterval: 3e5
51
- }), this.createTokenTime = Date.now(), this.client = new y(h);
51
+ }), this.createTokenTime = Date.now(), this.client = new w(d);
52
52
  } catch (s) {
53
53
  throw new o(s instanceof Error ? s.message : String(s));
54
54
  }
55
55
  }
56
56
  // 修改上传方法
57
57
  static async uploadFile(e) {
58
- const { file: t, onProgress: c = () => {
59
- }, path: s = "ksh/pdf", getCredentials: l } = e;
60
- await this.initOssClient(l);
58
+ const { file: t, onProgress: i = () => {
59
+ }, path: s = "ksh/pdf", getCredentials: l, ...h } = e;
60
+ await this.initOssClient(l, h);
61
61
  try {
62
62
  return await this.client.multipartUpload(`${s}/${t.name}`, t, {
63
- progress(d) {
64
- c({ percent: Math.round(d * 100) });
63
+ progress(u) {
64
+ i({ percent: Math.round(u * 100) });
65
65
  }
66
66
  });
67
- } catch (i) {
68
- throw new o(i instanceof Error ? i.message : String(i));
67
+ } catch (c) {
68
+ throw new o(c instanceof Error ? c.message : String(c));
69
69
  }
70
70
  }
71
71
  // 修改生成签名URL方法
72
- static async generateSignedUrl(e, t, c) {
73
- await this.initOssClient(t, c);
72
+ static async generateSignedUrl(e, t, i) {
73
+ await this.initOssClient(t, i);
74
74
  try {
75
75
  return await this.client.signatureUrl(e, { expires: 60 * 60 });
76
76
  } catch (s) {
@@ -79,11 +79,11 @@ class n {
79
79
  }
80
80
  }
81
81
  a(n, "client"), a(n, "createTokenTime", 0), a(n, "expireTime", 15 * 60 * 1e3);
82
- const S = n.uploadFile.bind(n), f = n.generateSignedUrl.bind(n);
82
+ const f = n.uploadFile.bind(n), m = n.generateSignedUrl.bind(n);
83
83
  export {
84
84
  o as OssError,
85
85
  n as OssUploader,
86
- f as generateSignedUrl,
87
- S as uploadFile
86
+ m as generateSignedUrl,
87
+ f as uploadFile
88
88
  };
89
89
  //# sourceMappingURL=oss-uploader.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"oss-uploader.mjs","sources":["../../../../packages/utils/src/oss-uploader.ts"],"sourcesContent":["import OSS from 'ali-oss'\n\nexport interface OssCredentials {\n accessKeyId: string\n accessKeySecret: string\n securityToken: string\n}\n\nexport interface OssConfig extends Partial<Omit<OssClientConfig, 'accessKeyId' | 'accessKeySecret' | 'stsToken'>> {\n file: File\n onProgress?: (p: { percent: number }) => void\n path?: string\n getCredentials: () => Promise<OssCredentials | null>\n}\n\nexport interface OssClientConfig {\n accessKeyId: string\n accessKeySecret: string\n stsToken: string\n secure: boolean\n bucket: string\n region: string\n cors: boolean\n useFetch: boolean\n timeout: number\n headers: Record<string, string>\n}\n\n// 定义错误类型\nexport class OssError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'OssError'\n }\n}\n\nconst ossConfig: OssClientConfig = {\n accessKeyId: '',\n accessKeySecret: '',\n stsToken: '',\n secure: true,\n bucket: 'yao-file-daily',\n region: 'oss-cn-hangzhou',\n cors: true,\n useFetch: false,\n timeout: 60000,\n headers: {\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE',\n 'Access-Control-Allow-Headers': '*',\n },\n}\n\nexport class OssUploader {\n private static client: OSS\n private static createTokenTime: number = 0\n private static readonly expireTime = 15 * 60 * 1000\n\n // 获取凭证\n private static async getOssCredentials(getCredentials: OssConfig['getCredentials']): Promise<Required<OssCredentials>> {\n const credentials = await getCredentials()\n if (!credentials) {\n throw new OssError('获取凭证失败')\n }\n return {\n accessKeyId: credentials.accessKeyId,\n accessKeySecret: credentials.accessKeySecret,\n securityToken: credentials.securityToken,\n }\n }\n\n // 修改初始化方法\n public static async initOssClient(getCredentials: OssConfig['getCredentials'], args?: Partial<OssConfig>): Promise<void> {\n const diff = Date.now() - this.createTokenTime\n if (!ossConfig.accessKeyId || diff > this.expireTime) {\n try {\n const { accessKeyId, accessKeySecret, securityToken: stsToken } = await this.getOssCredentials(getCredentials)\n Object.assign(ossConfig, {\n accessKeyId,\n accessKeySecret,\n stsToken,\n ...args,\n refreshSTSToken: async () => {\n return await this.getOssCredentials(getCredentials)\n },\n refreshSTSTokenInterval: 300000,\n })\n this.createTokenTime = Date.now()\n this.client = new OSS(ossConfig)\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n }\n\n // 修改上传方法\n public static async uploadFile(opts: OssConfig & { getCredentials: OssConfig['getCredentials'] }): Promise<OSS.MultipartUploadResult> {\n const { file, onProgress = () => {}, path = 'ksh/pdf', getCredentials } = opts\n\n await this.initOssClient(getCredentials)\n\n try {\n const result = await this.client.multipartUpload(`${path}/${file.name}`, file, {\n progress(p: number) {\n onProgress({ percent: Math.round(p * 100) })\n },\n })\n return result\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n\n // 修改生成签名URL方法\n public static async generateSignedUrl(\n objectKey: string,\n getCredentials: OssConfig['getCredentials'],\n args?: Partial<OssConfig>,\n ): Promise<string> {\n await this.initOssClient(getCredentials, args)\n try {\n return await this.client.signatureUrl(objectKey, { expires: 60 * 60 })\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n}\n\n// 导出便捷方法\nexport const uploadFile = OssUploader.uploadFile.bind(OssUploader)\nexport const generateSignedUrl = OssUploader.generateSignedUrl.bind(OssUploader)\n"],"names":["OssError","message","ossConfig","OssUploader","getCredentials","credentials","args","diff","accessKeyId","accessKeySecret","stsToken","OSS","error","opts","file","onProgress","path","p","objectKey","__publicField","uploadFile","generateSignedUrl"],"mappings":";;;;AA6BO,MAAMA,UAAiB,MAAM;AAAA,EAClC,YAAYC,GAAiB;AAC3B,UAAMA,CAAO,GACb,KAAK,OAAO;AAAA,EAAA;AAEhB;AAEA,MAAMC,IAA6B;AAAA,EACjC,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,IACP,+BAA+B;AAAA,IAC/B,gCAAgC;AAAA,IAChC,gCAAgC;AAAA,EAAA;AAEpC;AAEO,MAAMC,EAAY;AAAA;AAAA,EAMvB,aAAqB,kBAAkBC,GAAgF;AAC/G,UAAAC,IAAc,MAAMD,EAAe;AACzC,QAAI,CAACC;AACG,YAAA,IAAIL,EAAS,QAAQ;AAEtB,WAAA;AAAA,MACL,aAAaK,EAAY;AAAA,MACzB,iBAAiBA,EAAY;AAAA,MAC7B,eAAeA,EAAY;AAAA,IAC7B;AAAA,EAAA;AAAA;AAAA,EAIF,aAAoB,cAAcD,GAA6CE,GAA0C;AACvH,UAAMC,IAAO,KAAK,IAAI,IAAI,KAAK;AAC/B,QAAI,CAACL,EAAU,eAAeK,IAAO,KAAK;AACpC,UAAA;AACI,cAAA,EAAE,aAAAC,GAAa,iBAAAC,GAAiB,eAAeC,MAAa,MAAM,KAAK,kBAAkBN,CAAc;AAC7G,eAAO,OAAOF,GAAW;AAAA,UACvB,aAAAM;AAAA,UACA,iBAAAC;AAAA,UACA,UAAAC;AAAA,UACA,GAAGJ;AAAA,UACH,iBAAiB,YACR,MAAM,KAAK,kBAAkBF,CAAc;AAAA,UAEpD,yBAAyB;AAAA,QAAA,CAC1B,GACI,KAAA,kBAAkB,KAAK,IAAI,GAC3B,KAAA,SAAS,IAAIO,EAAIT,CAAS;AAAA,eAE1BU,GAAO;AACN,cAAA,IAAIZ,EAASY,aAAiB,QAAQA,EAAM,UAAU,OAAOA,CAAK,CAAC;AAAA,MAAA;AAAA,EAE7E;AAAA;AAAA,EAIF,aAAoB,WAAWC,GAAuG;AAC9H,UAAA,EAAE,MAAAC,GAAM,YAAAC,IAAa,MAAM;AAAA,IAAI,GAAA,MAAAC,IAAO,WAAW,gBAAAZ,EAAA,IAAmBS;AAEpE,UAAA,KAAK,cAAcT,CAAc;AAEnC,QAAA;AAMK,aALQ,MAAM,KAAK,OAAO,gBAAgB,GAAGY,CAAI,IAAIF,EAAK,IAAI,IAAIA,GAAM;AAAA,QAC7E,SAASG,GAAW;AAClB,UAAAF,EAAW,EAAE,SAAS,KAAK,MAAME,IAAI,GAAG,GAAG;AAAA,QAAA;AAAA,MAC7C,CACD;AAAA,aAGIL,GAAO;AACN,YAAA,IAAIZ,EAASY,aAAiB,QAAQA,EAAM,UAAU,OAAOA,CAAK,CAAC;AAAA,IAAA;AAAA,EAC3E;AAAA;AAAA,EAIF,aAAoB,kBAClBM,GACAd,GACAE,GACiB;AACX,UAAA,KAAK,cAAcF,GAAgBE,CAAI;AACzC,QAAA;AACK,aAAA,MAAM,KAAK,OAAO,aAAaY,GAAW,EAAE,SAAS,KAAK,IAAI;AAAA,aAEhEN,GAAO;AACN,YAAA,IAAIZ,EAASY,aAAiB,QAAQA,EAAM,UAAU,OAAOA,CAAK,CAAC;AAAA,IAAA;AAAA,EAC3E;AAEJ;AA3EEO,EADWhB,GACI,WACfgB,EAFWhB,GAEI,mBAA0B,IACzCgB,EAHWhB,GAGa,cAAa,KAAK,KAAK;AA4E1C,MAAMiB,IAAajB,EAAY,WAAW,KAAKA,CAAW,GACpDkB,IAAoBlB,EAAY,kBAAkB,KAAKA,CAAW;"}
1
+ {"version":3,"file":"oss-uploader.mjs","sources":["../../../../packages/utils/src/oss-uploader.ts"],"sourcesContent":["import OSS from 'ali-oss'\n\nexport interface OssCredentials {\n accessKeyId: string\n accessKeySecret: string\n securityToken: string\n}\n\nexport interface OssConfig extends Partial<Omit<OssClientConfig, 'accessKeyId' | 'accessKeySecret' | 'stsToken'>> {\n file: File\n onProgress?: (p: { percent: number }) => void\n path?: string\n getCredentials: () => Promise<OssCredentials | null>\n}\n\nexport interface OssClientConfig {\n accessKeyId: string\n accessKeySecret: string\n stsToken: string\n secure: boolean\n bucket: string\n region: string\n cors: boolean\n useFetch: boolean\n timeout: number\n headers: Record<string, string>\n}\n\n// 定义错误类型\nexport class OssError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'OssError'\n }\n}\n\nconst ossConfig: OssClientConfig = {\n accessKeyId: '',\n accessKeySecret: '',\n stsToken: '',\n secure: true,\n bucket: 'yao-file-daily',\n region: 'oss-cn-hangzhou',\n cors: true,\n useFetch: false,\n timeout: 60000,\n headers: {\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE',\n 'Access-Control-Allow-Headers': '*',\n },\n}\n\nexport class OssUploader {\n private static client: OSS\n private static createTokenTime: number = 0\n private static readonly expireTime = 15 * 60 * 1000\n\n // 获取凭证\n private static async getOssCredentials(getCredentials: OssConfig['getCredentials']): Promise<Required<OssCredentials>> {\n const credentials = await getCredentials()\n if (!credentials) {\n throw new OssError('获取凭证失败')\n }\n return {\n accessKeyId: credentials.accessKeyId,\n accessKeySecret: credentials.accessKeySecret,\n securityToken: credentials.securityToken,\n }\n }\n\n // 修改初始化方法\n public static async initOssClient(getCredentials: OssConfig['getCredentials'], args?: Partial<OssConfig>): Promise<void> {\n const diff = Date.now() - this.createTokenTime\n if (!ossConfig.accessKeyId || diff > this.expireTime) {\n try {\n const { accessKeyId, accessKeySecret, securityToken: stsToken } = await this.getOssCredentials(getCredentials)\n Object.assign(ossConfig, {\n accessKeyId,\n accessKeySecret,\n stsToken,\n ...args,\n refreshSTSToken: async () => {\n return await this.getOssCredentials(getCredentials)\n },\n refreshSTSTokenInterval: 300000,\n })\n this.createTokenTime = Date.now()\n this.client = new OSS(ossConfig)\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n }\n\n // 修改上传方法\n public static async uploadFile(opts: OssConfig & { getCredentials: OssConfig['getCredentials'] }): Promise<OSS.MultipartUploadResult> {\n const { file, onProgress = () => {}, path = 'ksh/pdf', getCredentials, ...rest } = opts\n\n await this.initOssClient(getCredentials, rest)\n\n try {\n const result = await this.client.multipartUpload(`${path}/${file.name}`, file, {\n progress(p: number) {\n onProgress({ percent: Math.round(p * 100) })\n },\n })\n return result\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n\n // 修改生成签名URL方法\n public static async generateSignedUrl(\n objectKey: string,\n getCredentials: OssConfig['getCredentials'],\n args?: Partial<OssConfig>,\n ): Promise<string> {\n await this.initOssClient(getCredentials, args)\n try {\n return await this.client.signatureUrl(objectKey, { expires: 60 * 60 })\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n}\n\n// 导出便捷方法\nexport const uploadFile = OssUploader.uploadFile.bind(OssUploader)\nexport const generateSignedUrl = OssUploader.generateSignedUrl.bind(OssUploader)\n"],"names":["OssError","message","ossConfig","OssUploader","getCredentials","credentials","args","diff","accessKeyId","accessKeySecret","stsToken","OSS","error","opts","file","onProgress","path","rest","p","objectKey","__publicField","uploadFile","generateSignedUrl"],"mappings":";;;;AA6BO,MAAMA,UAAiB,MAAM;AAAA,EAClC,YAAYC,GAAiB;AAC3B,UAAMA,CAAO,GACb,KAAK,OAAO;AAAA,EAAA;AAEhB;AAEA,MAAMC,IAA6B;AAAA,EACjC,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,IACP,+BAA+B;AAAA,IAC/B,gCAAgC;AAAA,IAChC,gCAAgC;AAAA,EAAA;AAEpC;AAEO,MAAMC,EAAY;AAAA;AAAA,EAMvB,aAAqB,kBAAkBC,GAAgF;AAC/G,UAAAC,IAAc,MAAMD,EAAe;AACzC,QAAI,CAACC;AACG,YAAA,IAAIL,EAAS,QAAQ;AAEtB,WAAA;AAAA,MACL,aAAaK,EAAY;AAAA,MACzB,iBAAiBA,EAAY;AAAA,MAC7B,eAAeA,EAAY;AAAA,IAC7B;AAAA,EAAA;AAAA;AAAA,EAIF,aAAoB,cAAcD,GAA6CE,GAA0C;AACvH,UAAMC,IAAO,KAAK,IAAI,IAAI,KAAK;AAC/B,QAAI,CAACL,EAAU,eAAeK,IAAO,KAAK;AACpC,UAAA;AACI,cAAA,EAAE,aAAAC,GAAa,iBAAAC,GAAiB,eAAeC,MAAa,MAAM,KAAK,kBAAkBN,CAAc;AAC7G,eAAO,OAAOF,GAAW;AAAA,UACvB,aAAAM;AAAA,UACA,iBAAAC;AAAA,UACA,UAAAC;AAAA,UACA,GAAGJ;AAAA,UACH,iBAAiB,YACR,MAAM,KAAK,kBAAkBF,CAAc;AAAA,UAEpD,yBAAyB;AAAA,QAAA,CAC1B,GACI,KAAA,kBAAkB,KAAK,IAAI,GAC3B,KAAA,SAAS,IAAIO,EAAIT,CAAS;AAAA,eAE1BU,GAAO;AACN,cAAA,IAAIZ,EAASY,aAAiB,QAAQA,EAAM,UAAU,OAAOA,CAAK,CAAC;AAAA,MAAA;AAAA,EAE7E;AAAA;AAAA,EAIF,aAAoB,WAAWC,GAAuG;AAC9H,UAAA,EAAE,MAAAC,GAAM,YAAAC,IAAa,MAAM;AAAA,OAAI,MAAAC,IAAO,WAAW,gBAAAZ,GAAgB,GAAGa,EAAS,IAAAJ;AAE7E,UAAA,KAAK,cAAcT,GAAgBa,CAAI;AAEzC,QAAA;AAMK,aALQ,MAAM,KAAK,OAAO,gBAAgB,GAAGD,CAAI,IAAIF,EAAK,IAAI,IAAIA,GAAM;AAAA,QAC7E,SAASI,GAAW;AAClB,UAAAH,EAAW,EAAE,SAAS,KAAK,MAAMG,IAAI,GAAG,GAAG;AAAA,QAAA;AAAA,MAC7C,CACD;AAAA,aAGIN,GAAO;AACN,YAAA,IAAIZ,EAASY,aAAiB,QAAQA,EAAM,UAAU,OAAOA,CAAK,CAAC;AAAA,IAAA;AAAA,EAC3E;AAAA;AAAA,EAIF,aAAoB,kBAClBO,GACAf,GACAE,GACiB;AACX,UAAA,KAAK,cAAcF,GAAgBE,CAAI;AACzC,QAAA;AACK,aAAA,MAAM,KAAK,OAAO,aAAaa,GAAW,EAAE,SAAS,KAAK,IAAI;AAAA,aAEhEP,GAAO;AACN,YAAA,IAAIZ,EAASY,aAAiB,QAAQA,EAAM,UAAU,OAAOA,CAAK,CAAC;AAAA,IAAA;AAAA,EAC3E;AAEJ;AA3EEQ,EADWjB,GACI,WACfiB,EAFWjB,GAEI,mBAA0B,IACzCiB,EAHWjB,GAGa,cAAa,KAAK,KAAK;AA4E1C,MAAMkB,IAAalB,EAAY,WAAW,KAAKA,CAAW,GACpDmB,IAAoBnB,EAAY,kBAAkB,KAAKA,CAAW;"}
@@ -1,2 +1,2 @@
1
- "use strict";var h=Object.defineProperty;var g=(n,e,s)=>e in n?h(n,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):n[e]=s;var o=(n,e,s)=>g(n,typeof e!="symbol"?e+"":e,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("../_virtual/aliyun-oss-sdk.js");class a extends Error{constructor(e){super(e),this.name="OssError"}}const d={accessKeyId:"",accessKeySecret:"",stsToken:"",secure:!0,bucket:"yao-file-daily",region:"oss-cn-hangzhou",cors:!0,useFetch:!1,timeout:6e4,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE","Access-Control-Allow-Headers":"*"}};class r{static async getOssCredentials(e){const s=await e();if(!s)throw new a("获取凭证失败");return{accessKeyId:s.accessKeyId,accessKeySecret:s.accessKeySecret,securityToken:s.securityToken}}static async initOssClient(e,s){const c=Date.now()-this.createTokenTime;if(!d.accessKeyId||c>this.expireTime)try{const{accessKeyId:t,accessKeySecret:l,securityToken:i}=await this.getOssCredentials(e);Object.assign(d,{accessKeyId:t,accessKeySecret:l,stsToken:i,...s,refreshSTSToken:async()=>await this.getOssCredentials(e),refreshSTSTokenInterval:3e5}),this.createTokenTime=Date.now(),this.client=new y.default(d)}catch(t){throw new a(t instanceof Error?t.message:String(t))}}static async uploadFile(e){const{file:s,onProgress:c=()=>{},path:t="ksh/pdf",getCredentials:l}=e;await this.initOssClient(l);try{return await this.client.multipartUpload(`${t}/${s.name}`,s,{progress(u){c({percent:Math.round(u*100)})}})}catch(i){throw new a(i instanceof Error?i.message:String(i))}}static async generateSignedUrl(e,s,c){await this.initOssClient(s,c);try{return await this.client.signatureUrl(e,{expires:60*60})}catch(t){throw new a(t instanceof Error?t.message:String(t))}}}o(r,"client"),o(r,"createTokenTime",0),o(r,"expireTime",15*60*1e3);const T=r.uploadFile.bind(r),w=r.generateSignedUrl.bind(r);exports.OssError=a;exports.OssUploader=r;exports.generateSignedUrl=w;exports.uploadFile=T;
1
+ "use strict";var g=Object.defineProperty;var y=(n,e,s)=>e in n?g(n,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):n[e]=s;var o=(n,e,s)=>y(n,typeof e!="symbol"?e+"":e,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("../_virtual/aliyun-oss-sdk.js");class c extends Error{constructor(e){super(e),this.name="OssError"}}const u={accessKeyId:"",accessKeySecret:"",stsToken:"",secure:!0,bucket:"yao-file-daily",region:"oss-cn-hangzhou",cors:!0,useFetch:!1,timeout:6e4,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE","Access-Control-Allow-Headers":"*"}};class r{static async getOssCredentials(e){const s=await e();if(!s)throw new c("获取凭证失败");return{accessKeyId:s.accessKeyId,accessKeySecret:s.accessKeySecret,securityToken:s.securityToken}}static async initOssClient(e,s){const i=Date.now()-this.createTokenTime;if(!u.accessKeyId||i>this.expireTime)try{const{accessKeyId:t,accessKeySecret:l,securityToken:d}=await this.getOssCredentials(e);Object.assign(u,{accessKeyId:t,accessKeySecret:l,stsToken:d,...s,refreshSTSToken:async()=>await this.getOssCredentials(e),refreshSTSTokenInterval:3e5}),this.createTokenTime=Date.now(),this.client=new T.default(u)}catch(t){throw new c(t instanceof Error?t.message:String(t))}}static async uploadFile(e){const{file:s,onProgress:i=()=>{},path:t="ksh/pdf",getCredentials:l,...d}=e;await this.initOssClient(l,d);try{return await this.client.multipartUpload(`${t}/${s.name}`,s,{progress(h){i({percent:Math.round(h*100)})}})}catch(a){throw new c(a instanceof Error?a.message:String(a))}}static async generateSignedUrl(e,s,i){await this.initOssClient(s,i);try{return await this.client.signatureUrl(e,{expires:60*60})}catch(t){throw new c(t instanceof Error?t.message:String(t))}}}o(r,"client"),o(r,"createTokenTime",0),o(r,"expireTime",15*60*1e3);const w=r.uploadFile.bind(r),S=r.generateSignedUrl.bind(r);exports.OssError=c;exports.OssUploader=r;exports.generateSignedUrl=S;exports.uploadFile=w;
2
2
  //# sourceMappingURL=oss-uploader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oss-uploader.js","sources":["../../../../packages/utils/src/oss-uploader.ts"],"sourcesContent":["import OSS from 'ali-oss'\n\nexport interface OssCredentials {\n accessKeyId: string\n accessKeySecret: string\n securityToken: string\n}\n\nexport interface OssConfig extends Partial<Omit<OssClientConfig, 'accessKeyId' | 'accessKeySecret' | 'stsToken'>> {\n file: File\n onProgress?: (p: { percent: number }) => void\n path?: string\n getCredentials: () => Promise<OssCredentials | null>\n}\n\nexport interface OssClientConfig {\n accessKeyId: string\n accessKeySecret: string\n stsToken: string\n secure: boolean\n bucket: string\n region: string\n cors: boolean\n useFetch: boolean\n timeout: number\n headers: Record<string, string>\n}\n\n// 定义错误类型\nexport class OssError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'OssError'\n }\n}\n\nconst ossConfig: OssClientConfig = {\n accessKeyId: '',\n accessKeySecret: '',\n stsToken: '',\n secure: true,\n bucket: 'yao-file-daily',\n region: 'oss-cn-hangzhou',\n cors: true,\n useFetch: false,\n timeout: 60000,\n headers: {\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE',\n 'Access-Control-Allow-Headers': '*',\n },\n}\n\nexport class OssUploader {\n private static client: OSS\n private static createTokenTime: number = 0\n private static readonly expireTime = 15 * 60 * 1000\n\n // 获取凭证\n private static async getOssCredentials(getCredentials: OssConfig['getCredentials']): Promise<Required<OssCredentials>> {\n const credentials = await getCredentials()\n if (!credentials) {\n throw new OssError('获取凭证失败')\n }\n return {\n accessKeyId: credentials.accessKeyId,\n accessKeySecret: credentials.accessKeySecret,\n securityToken: credentials.securityToken,\n }\n }\n\n // 修改初始化方法\n public static async initOssClient(getCredentials: OssConfig['getCredentials'], args?: Partial<OssConfig>): Promise<void> {\n const diff = Date.now() - this.createTokenTime\n if (!ossConfig.accessKeyId || diff > this.expireTime) {\n try {\n const { accessKeyId, accessKeySecret, securityToken: stsToken } = await this.getOssCredentials(getCredentials)\n Object.assign(ossConfig, {\n accessKeyId,\n accessKeySecret,\n stsToken,\n ...args,\n refreshSTSToken: async () => {\n return await this.getOssCredentials(getCredentials)\n },\n refreshSTSTokenInterval: 300000,\n })\n this.createTokenTime = Date.now()\n this.client = new OSS(ossConfig)\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n }\n\n // 修改上传方法\n public static async uploadFile(opts: OssConfig & { getCredentials: OssConfig['getCredentials'] }): Promise<OSS.MultipartUploadResult> {\n const { file, onProgress = () => {}, path = 'ksh/pdf', getCredentials } = opts\n\n await this.initOssClient(getCredentials)\n\n try {\n const result = await this.client.multipartUpload(`${path}/${file.name}`, file, {\n progress(p: number) {\n onProgress({ percent: Math.round(p * 100) })\n },\n })\n return result\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n\n // 修改生成签名URL方法\n public static async generateSignedUrl(\n objectKey: string,\n getCredentials: OssConfig['getCredentials'],\n args?: Partial<OssConfig>,\n ): Promise<string> {\n await this.initOssClient(getCredentials, args)\n try {\n return await this.client.signatureUrl(objectKey, { expires: 60 * 60 })\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n}\n\n// 导出便捷方法\nexport const uploadFile = OssUploader.uploadFile.bind(OssUploader)\nexport const generateSignedUrl = OssUploader.generateSignedUrl.bind(OssUploader)\n"],"names":["OssError","message","ossConfig","OssUploader","getCredentials","credentials","args","diff","accessKeyId","accessKeySecret","stsToken","OSS","error","opts","file","onProgress","path","p","objectKey","__publicField","uploadFile","generateSignedUrl"],"mappings":"qSA6BO,MAAMA,UAAiB,KAAM,CAClC,YAAYC,EAAiB,CAC3B,MAAMA,CAAO,EACb,KAAK,KAAO,UAAA,CAEhB,CAEA,MAAMC,EAA6B,CACjC,YAAa,GACb,gBAAiB,GACjB,SAAU,GACV,OAAQ,GACR,OAAQ,iBACR,OAAQ,kBACR,KAAM,GACN,SAAU,GACV,QAAS,IACT,QAAS,CACP,8BAA+B,IAC/B,+BAAgC,yBAChC,+BAAgC,GAAA,CAEpC,EAEO,MAAMC,CAAY,CAMvB,aAAqB,kBAAkBC,EAAgF,CAC/G,MAAAC,EAAc,MAAMD,EAAe,EACzC,GAAI,CAACC,EACG,MAAA,IAAIL,EAAS,QAAQ,EAEtB,MAAA,CACL,YAAaK,EAAY,YACzB,gBAAiBA,EAAY,gBAC7B,cAAeA,EAAY,aAC7B,CAAA,CAIF,aAAoB,cAAcD,EAA6CE,EAA0C,CACvH,MAAMC,EAAO,KAAK,IAAI,EAAI,KAAK,gBAC/B,GAAI,CAACL,EAAU,aAAeK,EAAO,KAAK,WACpC,GAAA,CACI,KAAA,CAAE,YAAAC,EAAa,gBAAAC,EAAiB,cAAeC,GAAa,MAAM,KAAK,kBAAkBN,CAAc,EAC7G,OAAO,OAAOF,EAAW,CACvB,YAAAM,EACA,gBAAAC,EACA,SAAAC,EACA,GAAGJ,EACH,gBAAiB,SACR,MAAM,KAAK,kBAAkBF,CAAc,EAEpD,wBAAyB,GAAA,CAC1B,EACI,KAAA,gBAAkB,KAAK,IAAI,EAC3B,KAAA,OAAS,IAAIO,EAAA,QAAIT,CAAS,QAE1BU,EAAO,CACN,MAAA,IAAIZ,EAASY,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,CAAC,CAAA,CAE7E,CAIF,aAAoB,WAAWC,EAAuG,CAC9H,KAAA,CAAE,KAAAC,EAAM,WAAAC,EAAa,IAAM,CAAI,EAAA,KAAAC,EAAO,UAAW,eAAAZ,CAAA,EAAmBS,EAEpE,MAAA,KAAK,cAAcT,CAAc,EAEnC,GAAA,CAMK,OALQ,MAAM,KAAK,OAAO,gBAAgB,GAAGY,CAAI,IAAIF,EAAK,IAAI,GAAIA,EAAM,CAC7E,SAASG,EAAW,CAClBF,EAAW,CAAE,QAAS,KAAK,MAAME,EAAI,GAAG,EAAG,CAAA,CAC7C,CACD,QAGIL,EAAO,CACN,MAAA,IAAIZ,EAASY,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,CAAC,CAAA,CAC3E,CAIF,aAAoB,kBAClBM,EACAd,EACAE,EACiB,CACX,MAAA,KAAK,cAAcF,EAAgBE,CAAI,EACzC,GAAA,CACK,OAAA,MAAM,KAAK,OAAO,aAAaY,EAAW,CAAE,QAAS,GAAK,GAAI,QAEhEN,EAAO,CACN,MAAA,IAAIZ,EAASY,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,CAAC,CAAA,CAC3E,CAEJ,CA3EEO,EADWhB,EACI,UACfgB,EAFWhB,EAEI,kBAA0B,GACzCgB,EAHWhB,EAGa,aAAa,GAAK,GAAK,KA4E1C,MAAMiB,EAAajB,EAAY,WAAW,KAAKA,CAAW,EACpDkB,EAAoBlB,EAAY,kBAAkB,KAAKA,CAAW"}
1
+ {"version":3,"file":"oss-uploader.js","sources":["../../../../packages/utils/src/oss-uploader.ts"],"sourcesContent":["import OSS from 'ali-oss'\n\nexport interface OssCredentials {\n accessKeyId: string\n accessKeySecret: string\n securityToken: string\n}\n\nexport interface OssConfig extends Partial<Omit<OssClientConfig, 'accessKeyId' | 'accessKeySecret' | 'stsToken'>> {\n file: File\n onProgress?: (p: { percent: number }) => void\n path?: string\n getCredentials: () => Promise<OssCredentials | null>\n}\n\nexport interface OssClientConfig {\n accessKeyId: string\n accessKeySecret: string\n stsToken: string\n secure: boolean\n bucket: string\n region: string\n cors: boolean\n useFetch: boolean\n timeout: number\n headers: Record<string, string>\n}\n\n// 定义错误类型\nexport class OssError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'OssError'\n }\n}\n\nconst ossConfig: OssClientConfig = {\n accessKeyId: '',\n accessKeySecret: '',\n stsToken: '',\n secure: true,\n bucket: 'yao-file-daily',\n region: 'oss-cn-hangzhou',\n cors: true,\n useFetch: false,\n timeout: 60000,\n headers: {\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE',\n 'Access-Control-Allow-Headers': '*',\n },\n}\n\nexport class OssUploader {\n private static client: OSS\n private static createTokenTime: number = 0\n private static readonly expireTime = 15 * 60 * 1000\n\n // 获取凭证\n private static async getOssCredentials(getCredentials: OssConfig['getCredentials']): Promise<Required<OssCredentials>> {\n const credentials = await getCredentials()\n if (!credentials) {\n throw new OssError('获取凭证失败')\n }\n return {\n accessKeyId: credentials.accessKeyId,\n accessKeySecret: credentials.accessKeySecret,\n securityToken: credentials.securityToken,\n }\n }\n\n // 修改初始化方法\n public static async initOssClient(getCredentials: OssConfig['getCredentials'], args?: Partial<OssConfig>): Promise<void> {\n const diff = Date.now() - this.createTokenTime\n if (!ossConfig.accessKeyId || diff > this.expireTime) {\n try {\n const { accessKeyId, accessKeySecret, securityToken: stsToken } = await this.getOssCredentials(getCredentials)\n Object.assign(ossConfig, {\n accessKeyId,\n accessKeySecret,\n stsToken,\n ...args,\n refreshSTSToken: async () => {\n return await this.getOssCredentials(getCredentials)\n },\n refreshSTSTokenInterval: 300000,\n })\n this.createTokenTime = Date.now()\n this.client = new OSS(ossConfig)\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n }\n\n // 修改上传方法\n public static async uploadFile(opts: OssConfig & { getCredentials: OssConfig['getCredentials'] }): Promise<OSS.MultipartUploadResult> {\n const { file, onProgress = () => {}, path = 'ksh/pdf', getCredentials, ...rest } = opts\n\n await this.initOssClient(getCredentials, rest)\n\n try {\n const result = await this.client.multipartUpload(`${path}/${file.name}`, file, {\n progress(p: number) {\n onProgress({ percent: Math.round(p * 100) })\n },\n })\n return result\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n\n // 修改生成签名URL方法\n public static async generateSignedUrl(\n objectKey: string,\n getCredentials: OssConfig['getCredentials'],\n args?: Partial<OssConfig>,\n ): Promise<string> {\n await this.initOssClient(getCredentials, args)\n try {\n return await this.client.signatureUrl(objectKey, { expires: 60 * 60 })\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n}\n\n// 导出便捷方法\nexport const uploadFile = OssUploader.uploadFile.bind(OssUploader)\nexport const generateSignedUrl = OssUploader.generateSignedUrl.bind(OssUploader)\n"],"names":["OssError","message","ossConfig","OssUploader","getCredentials","credentials","args","diff","accessKeyId","accessKeySecret","stsToken","OSS","error","opts","file","onProgress","path","rest","p","objectKey","__publicField","uploadFile","generateSignedUrl"],"mappings":"qSA6BO,MAAMA,UAAiB,KAAM,CAClC,YAAYC,EAAiB,CAC3B,MAAMA,CAAO,EACb,KAAK,KAAO,UAAA,CAEhB,CAEA,MAAMC,EAA6B,CACjC,YAAa,GACb,gBAAiB,GACjB,SAAU,GACV,OAAQ,GACR,OAAQ,iBACR,OAAQ,kBACR,KAAM,GACN,SAAU,GACV,QAAS,IACT,QAAS,CACP,8BAA+B,IAC/B,+BAAgC,yBAChC,+BAAgC,GAAA,CAEpC,EAEO,MAAMC,CAAY,CAMvB,aAAqB,kBAAkBC,EAAgF,CAC/G,MAAAC,EAAc,MAAMD,EAAe,EACzC,GAAI,CAACC,EACG,MAAA,IAAIL,EAAS,QAAQ,EAEtB,MAAA,CACL,YAAaK,EAAY,YACzB,gBAAiBA,EAAY,gBAC7B,cAAeA,EAAY,aAC7B,CAAA,CAIF,aAAoB,cAAcD,EAA6CE,EAA0C,CACvH,MAAMC,EAAO,KAAK,IAAI,EAAI,KAAK,gBAC/B,GAAI,CAACL,EAAU,aAAeK,EAAO,KAAK,WACpC,GAAA,CACI,KAAA,CAAE,YAAAC,EAAa,gBAAAC,EAAiB,cAAeC,GAAa,MAAM,KAAK,kBAAkBN,CAAc,EAC7G,OAAO,OAAOF,EAAW,CACvB,YAAAM,EACA,gBAAAC,EACA,SAAAC,EACA,GAAGJ,EACH,gBAAiB,SACR,MAAM,KAAK,kBAAkBF,CAAc,EAEpD,wBAAyB,GAAA,CAC1B,EACI,KAAA,gBAAkB,KAAK,IAAI,EAC3B,KAAA,OAAS,IAAIO,EAAA,QAAIT,CAAS,QAE1BU,EAAO,CACN,MAAA,IAAIZ,EAASY,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,CAAC,CAAA,CAE7E,CAIF,aAAoB,WAAWC,EAAuG,CAC9H,KAAA,CAAE,KAAAC,EAAM,WAAAC,EAAa,IAAM,GAAI,KAAAC,EAAO,UAAW,eAAAZ,EAAgB,GAAGa,CAAS,EAAAJ,EAE7E,MAAA,KAAK,cAAcT,EAAgBa,CAAI,EAEzC,GAAA,CAMK,OALQ,MAAM,KAAK,OAAO,gBAAgB,GAAGD,CAAI,IAAIF,EAAK,IAAI,GAAIA,EAAM,CAC7E,SAASI,EAAW,CAClBH,EAAW,CAAE,QAAS,KAAK,MAAMG,EAAI,GAAG,EAAG,CAAA,CAC7C,CACD,QAGIN,EAAO,CACN,MAAA,IAAIZ,EAASY,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,CAAC,CAAA,CAC3E,CAIF,aAAoB,kBAClBO,EACAf,EACAE,EACiB,CACX,MAAA,KAAK,cAAcF,EAAgBE,CAAI,EACzC,GAAA,CACK,OAAA,MAAM,KAAK,OAAO,aAAaa,EAAW,CAAE,QAAS,GAAK,GAAI,QAEhEP,EAAO,CACN,MAAA,IAAIZ,EAASY,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,CAAC,CAAA,CAC3E,CAEJ,CA3EEQ,EADWjB,EACI,UACfiB,EAFWjB,EAEI,kBAA0B,GACzCiB,EAHWjB,EAGa,aAAa,GAAK,GAAK,KA4E1C,MAAMkB,EAAalB,EAAY,WAAW,KAAKA,CAAW,EACpDmB,EAAoBnB,EAAY,kBAAkB,KAAKA,CAAW"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qxs-bns/utils",
3
- "version": "0.0.14",
3
+ "version": "0.0.15",
4
4
  "main": "lib/index.js",
5
5
  "module": "es/index.mjs",
6
6
  "types": "es/index.d.ts",