@simplysm/storage 13.0.0-beta.35 → 13.0.0-beta.38
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sftp-storage-client.d.ts","sourceRoot":"","sources":["../../src/clients/sftp-storage-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAKtE;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,OAAO;IAC/C,OAAO,CAAC,OAAO,CAAyB;IAExC;;;;;;;OAOG;IACG,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"sftp-storage-client.d.ts","sourceRoot":"","sources":["../../src/clients/sftp-storage-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAKtE;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,OAAO;IAC/C,OAAO,CAAC,OAAO,CAAyB;IAExC;;;;;;;OAOG;IACG,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CvD,OAAO,CAAC,cAAc;IAOtB,0CAA0C;IACpC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D;;;;;;OAMG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW1C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAQ7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAc1C,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,0CAA0C;IACpC,GAAG,CAAC,iBAAiB,EAAE,MAAM,GAAG,KAAK,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9E,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE;;;;;;OAMG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
|
|
@@ -23,24 +23,25 @@ class SftpStorageClient {
|
|
|
23
23
|
username: config.user,
|
|
24
24
|
password: config.pass
|
|
25
25
|
});
|
|
26
|
-
} else if (process.env["SSH_AUTH_SOCK"] != null) {
|
|
27
|
-
await client.connect({
|
|
28
|
-
host: config.host,
|
|
29
|
-
port: config.port,
|
|
30
|
-
username: config.user,
|
|
31
|
-
agent: process.env["SSH_AUTH_SOCK"]
|
|
32
|
-
});
|
|
33
26
|
} else {
|
|
34
|
-
const
|
|
27
|
+
const fsP = await import("fs/promises");
|
|
35
28
|
const os = await import("os");
|
|
36
|
-
const
|
|
37
|
-
const keyPath =
|
|
38
|
-
|
|
29
|
+
const pathMod = await import("path");
|
|
30
|
+
const keyPath = pathMod.join(os.homedir(), ".ssh", "id_ed25519");
|
|
31
|
+
const baseOptions = {
|
|
39
32
|
host: config.host,
|
|
40
33
|
port: config.port,
|
|
41
34
|
username: config.user,
|
|
42
|
-
|
|
43
|
-
}
|
|
35
|
+
...process.env["SSH_AUTH_SOCK"] != null ? { agent: process.env["SSH_AUTH_SOCK"] } : {}
|
|
36
|
+
};
|
|
37
|
+
try {
|
|
38
|
+
await client.connect({
|
|
39
|
+
...baseOptions,
|
|
40
|
+
privateKey: await fsP.readFile(keyPath)
|
|
41
|
+
});
|
|
42
|
+
} catch {
|
|
43
|
+
await client.connect(baseOptions);
|
|
44
|
+
}
|
|
44
45
|
}
|
|
45
46
|
this._client = client;
|
|
46
47
|
} catch (err) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/clients/sftp-storage-client.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Bytes } from \"@simplysm/core-common\";\nimport { SdError } from \"@simplysm/core-common\";\nimport SftpClient from \"ssh2-sftp-client\";\nimport type { Storage, FileInfo } from \"../types/storage\";\nimport type { StorageConnConfig } from \"../types/storage-conn-config\";\n\n// ssh2-sftp-client \uB77C\uC774\uBE0C\uB7EC\uB9AC \uD0C0\uC785 \uC815\uC758\uC5D0\uC11C Buffer \uC0AC\uC6A9\ntype SftpGetResult = string | NodeJS.WritableStream | Bytes;\n\n/**\n * SFTP \uD504\uB85C\uD1A0\uCF5C\uC744 \uC0AC\uC6A9\uD558\uB294 \uC2A4\uD1A0\uB9AC\uC9C0 \uD074\uB77C\uC774\uC5B8\uD2B8.\n *\n * @remarks\n * \uC9C1\uC811 \uC0AC\uC6A9\uBCF4\uB2E4 {@link StorageFactory.connect}\uB97C \uD1B5\uD55C \uC0AC\uC6A9\uC744 \uAD8C\uC7A5\uD569\uB2C8\uB2E4.\n */\nexport class SftpStorageClient implements Storage {\n private _client: SftpClient | undefined;\n\n /**\n * SFTP \uC11C\uBC84\uC5D0 \uC5F0\uACB0\uD569\uB2C8\uB2E4.\n *\n * @remarks\n * - \uC5F0\uACB0 \uD6C4 \uBC18\uB4DC\uC2DC {@link close}\uB85C \uC5F0\uACB0\uC744 \uC885\uB8CC\uD574\uC57C \uD569\uB2C8\uB2E4.\n * - \uB3D9\uC77C \uC778\uC2A4\uD134\uC2A4\uC5D0\uC11C \uC5EC\uB7EC \uBC88 \uD638\uCD9C\uD558\uC9C0 \uB9C8\uC138\uC694. (\uC5F0\uACB0 \uB204\uC218 \uBC1C\uC0DD)\n * - \uC790\uB3D9 \uC5F0\uACB0/\uC885\uB8CC \uAD00\uB9AC\uAC00 \uD544\uC694\uD558\uBA74 {@link StorageFactory.connect}\uB97C \uC0AC\uC6A9\uD558\uC138\uC694. (\uAD8C\uC7A5)\n */\n async connect(config: StorageConnConfig): Promise<void> {\n if (this._client !== undefined) {\n throw new SdError(\"\uC774\uBBF8 SFTP \uC11C\uBC84\uC5D0 \uC5F0\uACB0\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4. \uBA3C\uC800 close()\uB97C \uD638\uCD9C\uD558\uC138\uC694.\");\n }\n\n const client = new SftpClient();\n try {\n if (config.pass != null) {\n await client.connect({\n host: config.host,\n port: config.port,\n username: config.user,\n password: config.pass,\n });\n } else
|
|
5
|
-
"mappings": "AACA,SAAS,eAAe;AACxB,OAAO,gBAAgB;AAahB,MAAM,kBAAqC;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUR,MAAM,QAAQ,QAA0C;AACtD,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,QAAQ,oJAA2C;AAAA,IAC/D;AAEA,UAAM,SAAS,IAAI,WAAW;AAC9B,QAAI;AACF,UAAI,OAAO,QAAQ,MAAM;AACvB,cAAM,OAAO,QAAQ;AAAA,UACnB,MAAM,OAAO;AAAA,UACb,MAAM,OAAO;AAAA,UACb,UAAU,OAAO;AAAA,UACjB,UAAU,OAAO;AAAA,QACnB,CAAC;AAAA,MACH,
|
|
4
|
+
"sourcesContent": ["import type { Bytes } from \"@simplysm/core-common\";\nimport { SdError } from \"@simplysm/core-common\";\nimport SftpClient from \"ssh2-sftp-client\";\nimport type { Storage, FileInfo } from \"../types/storage\";\nimport type { StorageConnConfig } from \"../types/storage-conn-config\";\n\n// ssh2-sftp-client \uB77C\uC774\uBE0C\uB7EC\uB9AC \uD0C0\uC785 \uC815\uC758\uC5D0\uC11C Buffer \uC0AC\uC6A9\ntype SftpGetResult = string | NodeJS.WritableStream | Bytes;\n\n/**\n * SFTP \uD504\uB85C\uD1A0\uCF5C\uC744 \uC0AC\uC6A9\uD558\uB294 \uC2A4\uD1A0\uB9AC\uC9C0 \uD074\uB77C\uC774\uC5B8\uD2B8.\n *\n * @remarks\n * \uC9C1\uC811 \uC0AC\uC6A9\uBCF4\uB2E4 {@link StorageFactory.connect}\uB97C \uD1B5\uD55C \uC0AC\uC6A9\uC744 \uAD8C\uC7A5\uD569\uB2C8\uB2E4.\n */\nexport class SftpStorageClient implements Storage {\n private _client: SftpClient | undefined;\n\n /**\n * SFTP \uC11C\uBC84\uC5D0 \uC5F0\uACB0\uD569\uB2C8\uB2E4.\n *\n * @remarks\n * - \uC5F0\uACB0 \uD6C4 \uBC18\uB4DC\uC2DC {@link close}\uB85C \uC5F0\uACB0\uC744 \uC885\uB8CC\uD574\uC57C \uD569\uB2C8\uB2E4.\n * - \uB3D9\uC77C \uC778\uC2A4\uD134\uC2A4\uC5D0\uC11C \uC5EC\uB7EC \uBC88 \uD638\uCD9C\uD558\uC9C0 \uB9C8\uC138\uC694. (\uC5F0\uACB0 \uB204\uC218 \uBC1C\uC0DD)\n * - \uC790\uB3D9 \uC5F0\uACB0/\uC885\uB8CC \uAD00\uB9AC\uAC00 \uD544\uC694\uD558\uBA74 {@link StorageFactory.connect}\uB97C \uC0AC\uC6A9\uD558\uC138\uC694. (\uAD8C\uC7A5)\n */\n async connect(config: StorageConnConfig): Promise<void> {\n if (this._client !== undefined) {\n throw new SdError(\"\uC774\uBBF8 SFTP \uC11C\uBC84\uC5D0 \uC5F0\uACB0\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4. \uBA3C\uC800 close()\uB97C \uD638\uCD9C\uD558\uC138\uC694.\");\n }\n\n const client = new SftpClient();\n try {\n if (config.pass != null) {\n await client.connect({\n host: config.host,\n port: config.port,\n username: config.user,\n password: config.pass,\n });\n } else {\n // SSH agent + \uD0A4 \uD30C\uC77C\uB85C \uC778\uC99D \uC2DC\uB3C4\n const fsP = await import(\"fs/promises\");\n const os = await import(\"os\");\n const pathMod = await import(\"path\");\n const keyPath = pathMod.join(os.homedir(), \".ssh\", \"id_ed25519\");\n\n const baseOptions = {\n host: config.host,\n port: config.port,\n username: config.user,\n ...(process.env[\"SSH_AUTH_SOCK\"] != null ? { agent: process.env[\"SSH_AUTH_SOCK\"] } : {}),\n };\n\n try {\n await client.connect({\n ...baseOptions,\n privateKey: await fsP.readFile(keyPath),\n });\n } catch {\n // privateKey \uD30C\uC2F1 \uC2E4\uD328 (\uC554\uD638\uD654\uB41C \uD0A4 \uB4F1) \u2192 agent\uB9CC\uC73C\uB85C \uC7AC\uC2DC\uB3C4\n await client.connect(baseOptions);\n }\n }\n this._client = client;\n } catch (err) {\n await client.end();\n throw err;\n }\n }\n\n private _requireClient(): SftpClient {\n if (this._client === undefined) {\n throw new SdError(\"SFTP \uC11C\uBC84\uC5D0 \uC5F0\uACB0\uB418\uC5B4\uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\");\n }\n return this._client;\n }\n\n /** \uB514\uB809\uD1A0\uB9AC\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4. \uC0C1\uC704 \uB514\uB809\uD1A0\uB9AC\uAC00 \uC5C6\uC73C\uBA74 \uD568\uAED8 \uC0DD\uC131\uD569\uB2C8\uB2E4. */\n async mkdir(dirPath: string): Promise<void> {\n await this._requireClient().mkdir(dirPath, true);\n }\n\n async rename(fromPath: string, toPath: string): Promise<void> {\n await this._requireClient().rename(fromPath, toPath);\n }\n\n /**\n * \uD30C\uC77C \uB610\uB294 \uB514\uB809\uD1A0\uB9AC \uC874\uC7AC \uC5EC\uBD80\uB97C \uD655\uC778\uD569\uB2C8\uB2E4.\n *\n * @remarks\n * \uC0C1\uC704 \uB514\uB809\uD1A0\uB9AC\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uACBD\uC6B0\uC5D0\uB3C4 false\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4.\n * \uB124\uD2B8\uC6CC\uD06C \uC624\uB958, \uAD8C\uD55C \uC624\uB958 \uB4F1 \uBAA8\uB4E0 \uC608\uC678\uB3C4 false\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4.\n */\n async exists(filePath: string): Promise<boolean> {\n try {\n // ssh2-sftp-client\uC758 exists()\uB294 false | 'd' | '-' | 'l' \uB97C \uBC18\uD658\uD55C\uB2E4.\n // false: \uC874\uC7AC\uD558\uC9C0 \uC54A\uC74C, 'd': \uB514\uB809\uD1A0\uB9AC, '-': \uD30C\uC77C, 'l': \uC2EC\uBCFC\uB9AD \uB9C1\uD06C\n const result = await this._requireClient().exists(filePath);\n return typeof result === \"string\";\n } catch {\n return false;\n }\n }\n\n async readdir(dirPath: string): Promise<FileInfo[]> {\n const list = await this._requireClient().list(dirPath);\n return list.map((item) => ({\n name: item.name,\n isFile: item.type === \"-\",\n }));\n }\n\n async readFile(filePath: string): Promise<Bytes> {\n // ssh2-sftp-client\uC758 get()\uC740 dst \uBBF8\uC804\uB2EC \uC2DC Buffer\uB97C \uBC18\uD658\uD55C\uB2E4.\n // \uD0C0\uC785 \uC815\uC758(string | WritableStream | Buffer)\uC640 \uB2EC\uB9AC \uC2E4\uC81C\uB85C\uB294 Buffer\uB9CC \uBC18\uD658\uB41C\uB2E4.\n const result = (await this._requireClient().get(filePath)) as SftpGetResult;\n if (result instanceof Uint8Array) {\n return result;\n }\n // \uD0C0\uC785 \uC815\uC758\uC0C1 string\uB3C4 \uAC00\uB2A5\uD558\uBBC0\uB85C \uBC29\uC5B4 \uCF54\uB4DC\n if (typeof result === \"string\") {\n return new TextEncoder().encode(result);\n }\n throw new SdError(\"\uC608\uC0C1\uCE58 \uBABB\uD55C \uC751\uB2F5 \uD0C0\uC785\uC785\uB2C8\uB2E4.\");\n }\n\n async remove(filePath: string): Promise<void> {\n await this._requireClient().delete(filePath);\n }\n\n /** \uB85C\uCEEC \uD30C\uC77C \uACBD\uB85C \uB610\uB294 \uBC14\uC774\uD2B8 \uB370\uC774\uD130\uB97C \uC6D0\uACA9 \uACBD\uB85C\uC5D0 \uC5C5\uB85C\uB4DC\uD569\uB2C8\uB2E4. */\n async put(localPathOrBuffer: string | Bytes, storageFilePath: string): Promise<void> {\n if (typeof localPathOrBuffer === \"string\") {\n await this._requireClient().fastPut(localPathOrBuffer, storageFilePath);\n } else {\n // eslint-disable-next-line no-restricted-globals -- ssh2-sftp-client \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC694\uAD6C\uC0AC\uD56D\n await this._requireClient().put(Buffer.from(localPathOrBuffer), storageFilePath);\n }\n }\n\n async uploadDir(fromPath: string, toPath: string): Promise<void> {\n await this._requireClient().uploadDir(fromPath, toPath);\n }\n\n /**\n * \uC5F0\uACB0\uC744 \uC885\uB8CC\uD569\uB2C8\uB2E4.\n *\n * @remarks\n * \uC774\uBBF8 \uC885\uB8CC\uB41C \uC0C1\uD0DC\uC5D0\uC11C \uD638\uCD9C\uD574\uB3C4 \uC5D0\uB7EC\uAC00 \uBC1C\uC0DD\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n * \uC885\uB8CC \uD6C4\uC5D0\uB294 \uB3D9\uC77C \uC778\uC2A4\uD134\uC2A4\uC5D0\uC11C {@link connect}\uB97C \uB2E4\uC2DC \uD638\uCD9C\uD558\uC5EC \uC7AC\uC5F0\uACB0\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.\n */\n async close(): Promise<void> {\n if (this._client === undefined) {\n return;\n }\n await this._client.end();\n this._client = undefined;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysm/storage",
|
|
3
3
|
"sideEffects": false,
|
|
4
|
-
"version": "13.0.0-beta.
|
|
4
|
+
"version": "13.0.0-beta.38",
|
|
5
5
|
"description": "심플리즘 패키지 - 스토리지 모듈 (node)",
|
|
6
6
|
"author": "김석래",
|
|
7
7
|
"repository": {
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"basic-ftp": "^5.1.0",
|
|
21
21
|
"ssh2-sftp-client": "^12.0.1",
|
|
22
|
-
"@simplysm/core-common": "13.0.0-beta.
|
|
22
|
+
"@simplysm/core-common": "13.0.0-beta.38"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@types/ssh2-sftp-client": "^9.0.6"
|