@certd/plugin-lib 1.37.17 → 1.38.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.
Files changed (114) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cert/cert-reader.d.ts +62 -0
  3. package/dist/cert/cert-reader.js +205 -0
  4. package/dist/cert/consts.d.ts +2 -0
  5. package/dist/cert/consts.js +2 -0
  6. package/dist/cert/convert.d.ts +24 -0
  7. package/dist/cert/convert.js +122 -0
  8. package/dist/cert/dns-provider/api.d.ts +76 -0
  9. package/dist/cert/dns-provider/api.js +1 -0
  10. package/dist/cert/dns-provider/base.d.ts +27 -0
  11. package/dist/cert/dns-provider/base.js +48 -0
  12. package/dist/cert/dns-provider/decorator.d.ts +3 -0
  13. package/dist/cert/dns-provider/decorator.js +20 -0
  14. package/dist/cert/dns-provider/domain-parser.d.ts +9 -0
  15. package/dist/cert/dns-provider/domain-parser.js +63 -0
  16. package/dist/cert/dns-provider/index.d.ts +5 -0
  17. package/dist/cert/dns-provider/index.js +5 -0
  18. package/dist/cert/dns-provider/registry.d.ts +1 -0
  19. package/dist/cert/dns-provider/registry.js +2 -0
  20. package/dist/cert/index.d.ts +4 -0
  21. package/dist/cert/index.js +4 -0
  22. package/dist/common/index.js +0 -1
  23. package/dist/common/util.js +0 -1
  24. package/dist/index.d.ts +1 -8
  25. package/dist/index.js +1 -9
  26. package/dist/lib/check.d.ts +6 -0
  27. package/dist/lib/check.js +13 -0
  28. package/dist/lib/index.d.ts +1 -0
  29. package/dist/lib/index.js +1 -1
  30. package/dist/lib/ocr-api.js +0 -1
  31. package/dist/service/index.js +0 -1
  32. package/dist/service/site-info.js +0 -1
  33. package/package.json +13 -9
  34. package/tsconfig.json +2 -1
  35. package/dist/aliyun/access/aliesa-access.d.ts +0 -5
  36. package/dist/aliyun/access/aliesa-access.js +0 -61
  37. package/dist/aliyun/access/alioss-access.d.ts +0 -6
  38. package/dist/aliyun/access/alioss-access.js +0 -89
  39. package/dist/aliyun/access/aliyun-access.d.ts +0 -30
  40. package/dist/aliyun/access/aliyun-access.js +0 -126
  41. package/dist/aliyun/access/index.d.ts +0 -3
  42. package/dist/aliyun/access/index.js +0 -4
  43. package/dist/aliyun/index.d.ts +0 -2
  44. package/dist/aliyun/index.js +0 -3
  45. package/dist/aliyun/lib/base-client.d.ts +0 -16
  46. package/dist/aliyun/lib/base-client.js +0 -67
  47. package/dist/aliyun/lib/index.d.ts +0 -3
  48. package/dist/aliyun/lib/index.js +0 -4
  49. package/dist/aliyun/lib/oss-client.d.ts +0 -19
  50. package/dist/aliyun/lib/oss-client.js +0 -76
  51. package/dist/aliyun/lib/ssl-client.d.ts +0 -49
  52. package/dist/aliyun/lib/ssl-client.js +0 -133
  53. package/dist/ctyun/access/ctyun-access.d.ts +0 -5
  54. package/dist/ctyun/access/ctyun-access.js +0 -49
  55. package/dist/ctyun/index.d.ts +0 -1
  56. package/dist/ctyun/index.js +0 -2
  57. package/dist/ftp/access.d.ts +0 -12
  58. package/dist/ftp/access.js +0 -99
  59. package/dist/ftp/client.d.ts +0 -16
  60. package/dist/ftp/client.js +0 -57
  61. package/dist/ftp/index.d.ts +0 -2
  62. package/dist/ftp/index.js +0 -3
  63. package/dist/oss/api.d.ts +0 -46
  64. package/dist/oss/api.js +0 -48
  65. package/dist/oss/factory.d.ts +0 -10
  66. package/dist/oss/factory.js +0 -46
  67. package/dist/oss/impls/alioss.d.ts +0 -13
  68. package/dist/oss/impls/alioss.js +0 -55
  69. package/dist/oss/impls/ftp.d.ts +0 -12
  70. package/dist/oss/impls/ftp.js +0 -75
  71. package/dist/oss/impls/qiniuoss.d.ts +0 -13
  72. package/dist/oss/impls/qiniuoss.js +0 -47
  73. package/dist/oss/impls/s3.d.ts +0 -13
  74. package/dist/oss/impls/s3.js +0 -92
  75. package/dist/oss/impls/sftp.d.ts +0 -10
  76. package/dist/oss/impls/sftp.js +0 -79
  77. package/dist/oss/impls/ssh.d.ts +0 -11
  78. package/dist/oss/impls/ssh.js +0 -59
  79. package/dist/oss/impls/tencentcos.d.ts +0 -13
  80. package/dist/oss/impls/tencentcos.js +0 -51
  81. package/dist/oss/index.d.ts +0 -2
  82. package/dist/oss/index.js +0 -3
  83. package/dist/qiniu/access-oss.d.ts +0 -5
  84. package/dist/qiniu/access-oss.js +0 -47
  85. package/dist/qiniu/access.d.ts +0 -5
  86. package/dist/qiniu/access.js +0 -43
  87. package/dist/qiniu/index.d.ts +0 -3
  88. package/dist/qiniu/index.js +0 -4
  89. package/dist/qiniu/lib/sdk.d.ts +0 -34
  90. package/dist/qiniu/lib/sdk.js +0 -162
  91. package/dist/s3/access.d.ts +0 -25
  92. package/dist/s3/access.js +0 -134
  93. package/dist/s3/index.d.ts +0 -1
  94. package/dist/s3/index.js +0 -2
  95. package/dist/ssh/index.d.ts +0 -3
  96. package/dist/ssh/index.js +0 -4
  97. package/dist/ssh/sftp-access.d.ts +0 -5
  98. package/dist/ssh/sftp-access.js +0 -51
  99. package/dist/ssh/ssh-access.d.ts +0 -17
  100. package/dist/ssh/ssh-access.js +0 -214
  101. package/dist/ssh/ssh.d.ts +0 -138
  102. package/dist/ssh/ssh.js +0 -589
  103. package/dist/tencent/access-cos.d.ts +0 -6
  104. package/dist/tencent/access-cos.js +0 -83
  105. package/dist/tencent/access.d.ts +0 -10
  106. package/dist/tencent/access.js +0 -90
  107. package/dist/tencent/index.d.ts +0 -3
  108. package/dist/tencent/index.js +0 -4
  109. package/dist/tencent/lib/cos-client.d.ts +0 -19
  110. package/dist/tencent/lib/cos-client.js +0 -98
  111. package/dist/tencent/lib/index.d.ts +0 -2
  112. package/dist/tencent/lib/index.js +0 -3
  113. package/dist/tencent/lib/ssl-client.d.ts +0 -32
  114. package/dist/tencent/lib/ssl-client.js +0 -86
package/dist/oss/api.d.ts DELETED
@@ -1,46 +0,0 @@
1
- import { IAccessService } from "@certd/pipeline";
2
- import { ILogger, utils } from "@certd/basic";
3
- export type OssClientRemoveByOpts = {
4
- dir?: string;
5
- beforeDays?: number;
6
- };
7
- export type OssFileItem = {
8
- path: string;
9
- size: number;
10
- lastModified: number;
11
- };
12
- export type IOssClient = {
13
- upload: (fileName: string, fileContent: Buffer) => Promise<void>;
14
- remove: (fileName: string, opts?: {
15
- joinRootDir?: boolean;
16
- }) => Promise<void>;
17
- download: (fileName: string, savePath: string) => Promise<void>;
18
- removeBy: (removeByOpts: OssClientRemoveByOpts) => Promise<void>;
19
- listDir: (dir: string) => Promise<OssFileItem[]>;
20
- };
21
- export type OssClientContext = {
22
- accessService: IAccessService;
23
- logger: ILogger;
24
- utils: typeof utils;
25
- };
26
- export declare abstract class BaseOssClient<A> implements IOssClient {
27
- rootDir: string;
28
- access: A;
29
- logger: ILogger;
30
- utils: typeof utils;
31
- ctx: OssClientContext;
32
- protected constructor(opts: {
33
- rootDir?: string;
34
- access: A;
35
- });
36
- join(...strs: string[]): string;
37
- setCtx(ctx: any): Promise<void>;
38
- init(): Promise<void>;
39
- abstract remove(fileName: string, opts?: {
40
- joinRootDir?: boolean;
41
- }): Promise<void>;
42
- abstract upload(fileName: string, fileContent: Buffer): Promise<void>;
43
- abstract download(fileName: string, savePath: string): Promise<void>;
44
- abstract listDir(dir: string): Promise<OssFileItem[]>;
45
- removeBy(removeByOpts: OssClientRemoveByOpts): Promise<void>;
46
- }
package/dist/oss/api.js DELETED
@@ -1,48 +0,0 @@
1
- import dayjs from "dayjs";
2
- export class BaseOssClient {
3
- rootDir = "";
4
- access = null;
5
- logger;
6
- utils;
7
- ctx;
8
- constructor(opts) {
9
- this.rootDir = opts.rootDir || "";
10
- this.access = opts.access;
11
- }
12
- join(...strs) {
13
- let res = "";
14
- for (const item of strs) {
15
- if (item) {
16
- if (!res) {
17
- res = item;
18
- }
19
- else {
20
- res += "/" + item;
21
- }
22
- }
23
- }
24
- res = res.replace(/[\\/]+/g, "/");
25
- return res;
26
- }
27
- async setCtx(ctx) {
28
- // set context
29
- this.ctx = ctx;
30
- this.logger = ctx.logger;
31
- this.utils = ctx.utils;
32
- await this.init();
33
- }
34
- async init() {
35
- // do nothing
36
- }
37
- async removeBy(removeByOpts) {
38
- const list = await this.listDir(removeByOpts.dir);
39
- // removeByOpts.beforeDays = 0;
40
- const beforeDate = dayjs().subtract(removeByOpts.beforeDays, "day");
41
- for (const item of list) {
42
- if (item.lastModified && item.lastModified < beforeDate.valueOf()) {
43
- await this.remove(item.path, { joinRootDir: false });
44
- }
45
- }
46
- }
47
- }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29zcy9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBaUMxQixNQUFNLE9BQWdCLGFBQWE7SUFDakMsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUNyQixNQUFNLEdBQU0sSUFBSSxDQUFDO0lBQ2pCLE1BQU0sQ0FBVTtJQUNoQixLQUFLLENBQWU7SUFDcEIsR0FBRyxDQUFtQjtJQUV0QixZQUFzQixJQUFxQztRQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQUcsSUFBYztRQUNwQixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDYixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3hCLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUNULEdBQUcsR0FBRyxJQUFJLENBQUM7Z0JBQ2IsQ0FBQztxQkFBTSxDQUFDO29CQUNOLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFRO1FBQ25CLGNBQWM7UUFDZCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDdkIsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsYUFBYTtJQUNmLENBQUM7SUFPRCxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQW1DO1FBQ2hELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEQsK0JBQStCO1FBQy9CLE1BQU0sVUFBVSxHQUFHLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7WUFDeEIsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQ2xFLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDdkQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
@@ -1,10 +0,0 @@
1
- import { OssClientContext } from "./api";
2
- export declare class OssClientFactory {
3
- getClassByType(type: string): Promise<typeof import("./impls/alioss.js").default | typeof import("./impls/ssh.js").default | typeof import("./impls/sftp.js").default | typeof import("./impls/ftp.js").default | typeof import("./impls/tencentcos.js").default | typeof import("./impls/qiniuoss.js").default | typeof import("./impls/s3.js").default>;
4
- createOssClientByType(type: string, opts: {
5
- rootDir?: string;
6
- access: any;
7
- ctx: OssClientContext;
8
- }): Promise<any>;
9
- }
10
- export declare const ossClientFactory: OssClientFactory;
@@ -1,46 +0,0 @@
1
- export class OssClientFactory {
2
- async getClassByType(type) {
3
- if (type === "alioss") {
4
- const module = await import("./impls/alioss.js");
5
- return module.default;
6
- }
7
- else if (type === "ssh") {
8
- const module = await import("./impls/ssh.js");
9
- return module.default;
10
- }
11
- else if (type === "sftp") {
12
- const module = await import("./impls/sftp.js");
13
- return module.default;
14
- }
15
- else if (type === "ftp") {
16
- const module = await import("./impls/ftp.js");
17
- return module.default;
18
- }
19
- else if (type === "tencentcos") {
20
- const module = await import("./impls/tencentcos.js");
21
- return module.default;
22
- }
23
- else if (type === "qiniuoss") {
24
- const module = await import("./impls/qiniuoss.js");
25
- return module.default;
26
- }
27
- else if (type === "s3") {
28
- const module = await import("./impls/s3.js");
29
- return module.default;
30
- }
31
- else {
32
- throw new Error(`暂不支持此文件上传方式: ${type}`);
33
- }
34
- }
35
- async createOssClientByType(type, opts) {
36
- const cls = await this.getClassByType(type);
37
- if (cls) {
38
- // @ts-ignore
39
- const instance = new cls(opts);
40
- await instance.setCtx(opts.ctx);
41
- return instance;
42
- }
43
- }
44
- }
45
- export const ossClientFactory = new OssClientFactory();
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vc3MvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBWTtRQUMvQixJQUFJLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN0QixNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ2pELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUN4QixDQUFDO2FBQU0sSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDMUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM5QyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQzthQUFNLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzNCLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDL0MsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3hCLENBQUM7YUFBTSxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMxQixNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUN4QixDQUFDO2FBQU0sSUFBSSxJQUFJLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDakMsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNyRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQzthQUFNLElBQUksSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQy9CLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDbkQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3hCLENBQUM7YUFBTSxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6QixNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUM3QyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBQ0QsS0FBSyxDQUFDLHFCQUFxQixDQUFDLElBQVksRUFBRSxJQUE4RDtRQUN0RyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLGFBQWE7WUFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQixNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUMifQ==
@@ -1,13 +0,0 @@
1
- import { BaseOssClient, OssFileItem } from "../api.js";
2
- import { AliossAccess, AliossClient } from "../../aliyun/index.js";
3
- export default class AliOssClientImpl extends BaseOssClient<AliossAccess> {
4
- client: AliossClient;
5
- join(...strs: string[]): string;
6
- init(): Promise<void>;
7
- download(filePath: string, savePath: string): Promise<void>;
8
- listDir(dir: string): Promise<OssFileItem[]>;
9
- upload(filePath: string, fileContent: Buffer | string): Promise<void>;
10
- remove(filePath: string, opts?: {
11
- joinRootDir?: boolean;
12
- }): Promise<void>;
13
- }
@@ -1,55 +0,0 @@
1
- import { BaseOssClient } from "../api.js";
2
- import { AliossClient } from "../../aliyun/index.js";
3
- import dayjs from "dayjs";
4
- export default class AliOssClientImpl extends BaseOssClient {
5
- client;
6
- join(...strs) {
7
- const str = super.join(...strs);
8
- if (str.startsWith("/")) {
9
- return str.substring(1);
10
- }
11
- return str;
12
- }
13
- async init() {
14
- const aliyunAccess = await this.ctx.accessService.getById(this.access.accessId);
15
- const client = new AliossClient({
16
- access: aliyunAccess,
17
- bucket: this.access.bucket,
18
- region: this.access.region,
19
- });
20
- await client.init();
21
- this.client = client;
22
- }
23
- async download(filePath, savePath) {
24
- const key = this.join(this.rootDir, filePath);
25
- await this.client.downloadFile(key, savePath);
26
- }
27
- async listDir(dir) {
28
- const dirKey = this.join(this.rootDir, dir) + "/";
29
- const list = await this.client.listDir(dirKey);
30
- this.logger.info(`列出目录: ${dirKey},文件数:${list.length}`);
31
- return list.map(item => {
32
- return {
33
- path: item.name,
34
- lastModified: dayjs(item.lastModified).valueOf(),
35
- size: item.size,
36
- };
37
- });
38
- }
39
- async upload(filePath, fileContent) {
40
- const key = this.join(this.rootDir, filePath);
41
- this.logger.info(`开始上传文件: ${key}`);
42
- await this.client.uploadFile(key, fileContent);
43
- this.logger.info(`文件上传成功: ${filePath}`);
44
- }
45
- async remove(filePath, opts) {
46
- if (opts?.joinRootDir !== false) {
47
- filePath = this.join(this.rootDir, filePath);
48
- }
49
- const key = filePath;
50
- // remove file from alioss
51
- await this.client.removeFile(key);
52
- this.logger.info(`文件删除成功: ${key}`);
53
- }
54
- }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpb3NzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL29zcy9pbXBscy9hbGlvc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLFdBQVcsQ0FBQztBQUN2RCxPQUFPLEVBQWdCLFlBQVksRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsTUFBTSxDQUFDLE9BQU8sT0FBTyxnQkFBaUIsU0FBUSxhQUEyQjtJQUN2RSxNQUFNLENBQWU7SUFDckIsSUFBSSxDQUFDLEdBQUcsSUFBYztRQUNwQixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxLQUFLLENBQUMsSUFBSTtRQUNSLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFlLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUYsTUFBTSxNQUFNLEdBQUcsSUFBSSxZQUFZLENBQUM7WUFDOUIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMxQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1NBQzNCLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDL0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQVc7UUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNsRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsTUFBTSxRQUFRLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNyQixPQUFPO2dCQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTthQUNoQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFnQixFQUFFLFdBQTRCO1FBQ3pELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbkMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQWdCLEVBQUUsSUFBZ0M7UUFDN0QsSUFBSSxJQUFJLEVBQUUsV0FBVyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ2hDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQztRQUNyQiwwQkFBMEI7UUFDMUIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGIn0=
@@ -1,12 +0,0 @@
1
- import { BaseOssClient } from "../api.js";
2
- import { FtpAccess } from "../../ftp/index.js";
3
- export default class FtpOssClientImpl extends BaseOssClient<FtpAccess> {
4
- join(...strs: string[]): string;
5
- download(fileName: string, savePath: string): Promise<void>;
6
- listDir(dir: string): Promise<any>;
7
- upload(filePath: string, fileContent: Buffer | string): Promise<void>;
8
- private getFtpClient;
9
- remove(filePath: string, opts?: {
10
- joinRootDir?: boolean;
11
- }): Promise<void>;
12
- }
@@ -1,75 +0,0 @@
1
- import { BaseOssClient } from "../api.js";
2
- import path from "path";
3
- import os from "os";
4
- import fs from "fs";
5
- import { FtpClient } from "../../ftp/index.js";
6
- export default class FtpOssClientImpl extends BaseOssClient {
7
- join(...strs) {
8
- const str = super.join(...strs);
9
- if (!str.startsWith("/")) {
10
- return "/" + str;
11
- }
12
- return str;
13
- }
14
- async download(fileName, savePath) {
15
- const client = this.getFtpClient();
16
- await client.connect(async (client) => {
17
- const path = this.join(this.rootDir, fileName);
18
- await client.download(path, savePath);
19
- });
20
- }
21
- async listDir(dir) {
22
- const client = this.getFtpClient();
23
- return await client.connect(async (client) => {
24
- const path = this.join(this.rootDir, dir);
25
- const res = await client.listDir(path);
26
- return res.map(item => {
27
- return {
28
- path: this.join(path, item.name),
29
- size: item.size,
30
- lastModified: item.modifiedAt.getTime(),
31
- };
32
- });
33
- });
34
- }
35
- async upload(filePath, fileContent) {
36
- const client = this.getFtpClient();
37
- await client.connect(async (client) => {
38
- let tmpFilePath = fileContent;
39
- if (typeof fileContent !== "string") {
40
- tmpFilePath = path.join(os.tmpdir(), "cert", "oss", filePath);
41
- const dir = path.dirname(tmpFilePath);
42
- if (!fs.existsSync(dir)) {
43
- fs.mkdirSync(dir, { recursive: true });
44
- }
45
- fs.writeFileSync(tmpFilePath, fileContent);
46
- }
47
- try {
48
- // Write file to temp path
49
- const path = this.join(this.rootDir, filePath);
50
- await client.upload(tmpFilePath, path);
51
- }
52
- finally {
53
- // Remove temp file
54
- fs.unlinkSync(tmpFilePath);
55
- }
56
- });
57
- }
58
- getFtpClient() {
59
- return new FtpClient({
60
- access: this.access,
61
- logger: this.logger,
62
- });
63
- }
64
- async remove(filePath, opts) {
65
- if (opts?.joinRootDir !== false) {
66
- filePath = this.join(this.rootDir, filePath);
67
- }
68
- const client = this.getFtpClient();
69
- await client.connect(async (client) => {
70
- await client.client.remove(filePath);
71
- this.logger.info(`删除文件成功: ${filePath}`);
72
- });
73
- }
74
- }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnRwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL29zcy9pbXBscy9mdHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQWEsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxnQkFBaUIsU0FBUSxhQUF3QjtJQUNwRSxJQUFJLENBQUMsR0FBRyxJQUFjO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQy9DLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNuQyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMvQyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBVztRQUN2QixNQUFNLE1BQU0s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
@@ -1,13 +0,0 @@
1
- import { QiniuClient, QiniuOssAccess } from "../../qiniu/index.js";
2
- import { BaseOssClient, OssFileItem } from "../api.js";
3
- export default class QiniuOssClientImpl extends BaseOssClient<QiniuOssAccess> {
4
- client: QiniuClient;
5
- join(...strs: string[]): string;
6
- init(): Promise<void>;
7
- download(fileName: string, savePath: string): Promise<void>;
8
- listDir(dir: string): Promise<OssFileItem[]>;
9
- upload(filePath: string, fileContent: Buffer | string): Promise<void>;
10
- remove(filePath: string, opts?: {
11
- joinRootDir?: boolean;
12
- }): Promise<void>;
13
- }
@@ -1,47 +0,0 @@
1
- import { QiniuClient } from "../../qiniu/index.js";
2
- import { BaseOssClient } from "../api.js";
3
- export default class QiniuOssClientImpl extends BaseOssClient {
4
- client;
5
- join(...strs) {
6
- const str = super.join(...strs);
7
- if (str.startsWith("/")) {
8
- return str.substring(1);
9
- }
10
- return str;
11
- }
12
- async init() {
13
- const qiniuAccess = await this.ctx.accessService.getById(this.access.accessId);
14
- this.client = new QiniuClient({
15
- access: qiniuAccess,
16
- logger: this.logger,
17
- http: this.ctx.utils.http,
18
- });
19
- }
20
- async download(fileName, savePath) {
21
- const path = this.join(this.rootDir, fileName);
22
- await this.client.downloadFile(this.access.bucket, path, savePath);
23
- }
24
- async listDir(dir) {
25
- const path = this.join(this.rootDir, dir);
26
- const res = await this.client.listDir(this.access.bucket, path);
27
- return res.items.map(item => {
28
- return {
29
- path: item.key,
30
- size: item.fsize,
31
- //ns ,纳秒,去掉低4位 为毫秒
32
- lastModified: Math.floor(item.putTime / 10000),
33
- };
34
- });
35
- }
36
- async upload(filePath, fileContent) {
37
- const path = this.join(this.rootDir, filePath);
38
- await this.client.uploadFile(this.access.bucket, path, fileContent);
39
- }
40
- async remove(filePath, opts) {
41
- if (opts?.joinRootDir !== false) {
42
- filePath = this.join(this.rootDir, filePath);
43
- }
44
- await this.client.removeFile(this.access.bucket, filePath);
45
- }
46
- }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicWluaXVvc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb3NzL2ltcGxzL3Fpbml1b3NzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxXQUFXLEVBQWtCLE1BQU0sc0JBQXNCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLFdBQVcsQ0FBQztBQUV2RCxNQUFNLENBQUMsT0FBTyxPQUFPLGtCQUFtQixTQUFRLGFBQTZCO0lBQzNFLE1BQU0sQ0FBYztJQUVwQixJQUFJLENBQUMsR0FBRyxJQUFjO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUNELEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQWMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDO1lBQzVCLE1BQU0sRUFBRSxXQUFXO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQy9DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFXO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUIsT0FBTztnQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0JBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNoQixrQkFBa0I7Z0JBQ2xCLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2FBQy9DLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQWdCLEVBQUUsV0FBNEI7UUFDekQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQWdCLEVBQUUsSUFBZ0M7UUFDN0QsSUFBSSxJQUFJLEVBQUUsV0FBVyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ2hDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGIn0=
@@ -1,13 +0,0 @@
1
- import { BaseOssClient, OssFileItem } from "../api.js";
2
- import { S3Access } from "../../s3/access.js";
3
- export default class S3OssClientImpl extends BaseOssClient<S3Access> {
4
- client: any;
5
- join(...strs: string[]): string;
6
- init(): Promise<void>;
7
- download(filePath: string, savePath: string): Promise<void>;
8
- listDir(dir: string): Promise<OssFileItem[]>;
9
- upload(filePath: string, fileContent: Buffer | string): Promise<void>;
10
- remove(filePath: string, opts?: {
11
- joinRootDir?: boolean;
12
- }): Promise<void>;
13
- }
@@ -1,92 +0,0 @@
1
- import { BaseOssClient } from "../api.js";
2
- import path from "node:path";
3
- import fs from "fs";
4
- import dayjs from "dayjs";
5
- export default class S3OssClientImpl extends BaseOssClient {
6
- client;
7
- join(...strs) {
8
- const str = super.join(...strs);
9
- if (str.startsWith("/")) {
10
- return str.substring(1);
11
- }
12
- return str;
13
- }
14
- async init() {
15
- // import { S3Client } from "@aws-sdk/client-s3";
16
- //@ts-ignore
17
- const { S3Client } = await import("@aws-sdk/client-s3");
18
- this.client = new S3Client({
19
- forcePathStyle: true,
20
- //@ts-ignore
21
- s3ForcePathStyle: true,
22
- credentials: {
23
- accessKeyId: this.access.accessKeyId, // 默认 MinIO 访问密钥
24
- secretAccessKey: this.access.secretAccessKey, // 默认 MinIO 秘密密钥
25
- },
26
- region: "us-east-1",
27
- endpoint: this.access.endpoint,
28
- });
29
- }
30
- async download(filePath, savePath) {
31
- // @ts-ignore
32
- const { GetObjectCommand } = await import("@aws-sdk/client-s3");
33
- const key = path.join(this.rootDir, filePath);
34
- const params = {
35
- Bucket: this.access.bucket, // The name of the bucket. For example, 'sample_bucket_101'.
36
- Key: key, // The name of the object. For example, 'sample_upload.txt'.
37
- };
38
- const res = await this.client.send(new GetObjectCommand({ ...params }));
39
- const fileContent = fs.createWriteStream(savePath);
40
- res.Body.pipe(fileContent);
41
- this.logger.info(`文件下载成功: ${savePath}`);
42
- }
43
- async listDir(dir) {
44
- // @ts-ignore
45
- const { ListObjectsCommand } = await import("@aws-sdk/client-s3");
46
- const dirKey = this.join(this.rootDir, dir);
47
- const params = {
48
- Bucket: this.access.bucket, // The name of the bucket. For example, 'sample_bucket_101'.
49
- Prefix: dirKey, // The name of the object. For example, 'sample_upload.txt'.
50
- };
51
- const res = await this.client.send(new ListObjectsCommand({ ...params }));
52
- if (!res.Contents) {
53
- return [];
54
- }
55
- return res.Contents.map(item => {
56
- return {
57
- path: item.Key,
58
- size: item.Size,
59
- lastModified: dayjs(item.LastModified).valueOf(),
60
- };
61
- });
62
- }
63
- async upload(filePath, fileContent) {
64
- // @ts-ignore
65
- const { PutObjectCommand } = await import("@aws-sdk/client-s3");
66
- const key = path.join(this.rootDir, filePath);
67
- this.logger.info(`开始上传文件: ${key}`);
68
- const params = {
69
- Bucket: this.access.bucket, // The name of the bucket. For example, 'sample_bucket_101'.
70
- Key: key, // The name of the object. For example, 'sample_upload.txt'.
71
- };
72
- if (typeof fileContent === "string") {
73
- fileContent = fs.createReadStream(fileContent);
74
- }
75
- await this.client.send(new PutObjectCommand({ Body: fileContent, ...params }));
76
- this.logger.info(`文件上传成功: ${filePath}`);
77
- }
78
- async remove(filePath, opts) {
79
- if (opts?.joinRootDir !== false) {
80
- filePath = this.join(this.rootDir, filePath);
81
- }
82
- const key = filePath;
83
- // @ts-ignore
84
- const { DeleteObjectCommand } = await import("@aws-sdk/client-s3");
85
- await this.client.send(new DeleteObjectCommand({
86
- Bucket: this.access.bucket,
87
- Key: key,
88
- }));
89
- this.logger.info(`文件删除成功: ${key}`);
90
- }
91
- }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb3NzL2ltcGxzL3MzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQWUsTUFBTSxXQUFXLENBQUM7QUFDdkQsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsTUFBTSxDQUFDLE9BQU8sT0FBTyxlQUFnQixTQUFRLGFBQXVCO0lBQ2xFLE1BQU0sQ0FBTTtJQUNaLElBQUksQ0FBQyxHQUFHLElBQWM7UUFDcEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsS0FBSyxDQUFDLElBQUk7UUFDUixpREFBaUQ7UUFDakQsWUFBWTtRQUNaLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxRQUFRLENBQUM7WUFDekIsY0FBYyxFQUFFLElBQUk7WUFDcEIsWUFBWTtZQUNaLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsV0FBVyxFQUFFO2dCQUNYLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0I7Z0JBQ3RELGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxnQkFBZ0I7YUFDL0Q7WUFDRCxNQUFNLEVBQUUsV0FBVztZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFD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
@@ -1,10 +0,0 @@
1
- import { BaseOssClient, OssFileItem } from "../api.js";
2
- import { SftpAccess } from "../../ssh/index.js";
3
- export default class SftpOssClientImpl extends BaseOssClient<SftpAccess> {
4
- download(fileName: string, savePath: string): Promise<void>;
5
- listDir(dir: string): Promise<OssFileItem[]>;
6
- upload(filePath: string, fileContent: Buffer | string): Promise<void>;
7
- remove(filePath: string, opts?: {
8
- joinRootDir?: boolean;
9
- }): Promise<void>;
10
- }
@@ -1,79 +0,0 @@
1
- import { BaseOssClient } from "../api.js";
2
- import path from "path";
3
- import os from "os";
4
- import fs from "fs";
5
- import { SshClient } from "../../ssh/index.js";
6
- export default class SftpOssClientImpl extends BaseOssClient {
7
- async download(fileName, savePath) {
8
- const path = this.join(this.rootDir, fileName);
9
- const client = new SshClient(this.logger);
10
- const access = await this.ctx.accessService.getById(this.access.sshAccess);
11
- await client.download({
12
- connectConf: access,
13
- filePath: path,
14
- savePath,
15
- });
16
- }
17
- async listDir(dir) {
18
- const path = this.join(this.rootDir, dir);
19
- const client = new SshClient(this.logger);
20
- const access = await this.ctx.accessService.getById(this.access.sshAccess);
21
- const res = await client.listDir({
22
- connectConf: access,
23
- dir: path,
24
- });
25
- return res.map(item => {
26
- return {
27
- path: this.join(path, item.filename),
28
- size: item.size,
29
- lastModified: item.attrs.atime * 1000,
30
- };
31
- });
32
- }
33
- async upload(filePath, fileContent) {
34
- let tmpFilePath = fileContent;
35
- if (typeof fileContent !== "string") {
36
- tmpFilePath = path.join(os.tmpdir(), "cert", "oss", filePath);
37
- const dir = path.dirname(tmpFilePath);
38
- if (!fs.existsSync(dir)) {
39
- fs.mkdirSync(dir, { recursive: true });
40
- }
41
- fs.writeFileSync(tmpFilePath, fileContent);
42
- }
43
- const access = await this.ctx.accessService.getById(this.access.sshAccess);
44
- const key = this.join(this.rootDir, filePath);
45
- try {
46
- const client = new SshClient(this.logger);
47
- await client.uploadFiles({
48
- connectConf: access,
49
- mkdirs: true,
50
- transports: [
51
- {
52
- localPath: tmpFilePath,
53
- remotePath: key,
54
- },
55
- ],
56
- uploadType: "sftp",
57
- opts: {
58
- mode: this.access?.fileMode ?? undefined,
59
- },
60
- });
61
- }
62
- finally {
63
- // Remove temp file
64
- fs.unlinkSync(tmpFilePath);
65
- }
66
- }
67
- async remove(filePath, opts) {
68
- const access = await this.ctx.accessService.getById(this.access.sshAccess);
69
- const client = new SshClient(this.logger);
70
- if (opts?.joinRootDir !== false) {
71
- filePath = this.join(this.rootDir, filePath);
72
- }
73
- await client.removeFiles({
74
- connectConf: access,
75
- files: [filePath],
76
- });
77
- }
78
- }
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Z0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vc3MvaW1wbHMvc2Z0cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sV0FBVyxDQUFDO0FBQ3ZELE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sRUFBeUIsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEUsTUFBTSxDQUFDLE9BQU8sT0FBTyxpQkFBa0IsU0FBUSxhQUF5QjtJQUN0RSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDL0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBWSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUNwQixXQUFXLEVBQUUsTUFBTTtZQUNuQixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVE7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFXO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQVksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RixNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDL0IsV0FBVyxFQUFFLE1BQU07WUFDbkIsR0FBRyxFQUFFLElBQUk7U0FDVixDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEIsT0FBTztnQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDcEMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJO2FBQ3RDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQWdCLEVBQUUsV0FBNEI7UUFDekQsSUFBSSxXQUFXLEdBQUcsV0FBcUIsQ0FBQztRQUN4QyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzlELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFZLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQyxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3ZCLFdBQVcsRUFBRSxNQUFNO2dCQUNuQixNQUFNLEVBQUUsSUFBSTtnQkFDWixVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsU0FBUyxFQUFFLFdBQVc7d0JBQ3RCLFVBQVUsRUFBRSxHQUFHO3FCQUNoQjtpQkFDRjtnQkFDRCxVQUFVLEVBQUUsTUFBTTtnQkFDbEIsSUFBSSxFQUFFO29CQUNKLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsSUFBSSxTQUFTO2lCQUN6QzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7Z0JBQVMsQ0FBQztZQUNULG1CQUFtQjtZQUNuQixFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFnQixFQUFFLElBQWdDO1FBQzdELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFZLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEYsTUFBTSxNQUFNLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLElBQUksSUFBSSxFQUFFLFdBQVcsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNoQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDdkIsV0FBVyxFQUFFLE1BQU07WUFDbkIsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiJ9
@@ -1,11 +0,0 @@
1
- import { BaseOssClient, OssClientRemoveByOpts, OssFileItem } from "../api.js";
2
- import { SshAccess } from "../../ssh/index.js";
3
- export default class SshOssClientImpl extends BaseOssClient<SshAccess> {
4
- download(fileName: string, savePath: string): Promise<void>;
5
- removeBy(removeByOpts: OssClientRemoveByOpts): Promise<void>;
6
- listDir(dir: string): Promise<OssFileItem[]>;
7
- upload(filePath: string, fileContent: Buffer): Promise<void>;
8
- remove(filePath: string, opts?: {
9
- joinRootDir?: boolean;
10
- }): Promise<void>;
11
- }