Փոխանցել ավարտված CONNECT սոքեթը ssh2-sftp-client-ին
Պահեք պրոքսի վերնագրերից հետո արդեն բուֆերացված SSH ողջույնը, ապա օգտագործեք sock-ը նպատակակետի սովորական SSH ընտրանքներով։
import SftpClient from 'ssh2-sftp-client';
const client = new SftpClient();
await client.connect({
...sshOptions,
sock: tunnelSocket,
});Տրամադրեք գոյություն ունեցող նպատակակետի հոսթը, պորտը, հաշիվը և հոսթ-բանալու քաղաքականությունը sshOptions-ում։ Սոքեթն արդեն պետք է անցնի ընդունված CONNECT թունելով դեպի այդ նպատակակետը, ոչ միայն դեպի պրոքսի լսողը։
Նախքան հոսքը հանձնելը ստուգեք օգնականը՝ մերժեք 407-ը կամ այլ ձախողված պատասխանները, պահպանեք կարգավորման ժամկետները և փակեք մերժված սոքեթները։ Node-ի HTTP connect իրադարձությունը ներառում է վերնագրերից հետո արդեն կարդացված head բայթերը. պահպանեք ոչ դատարկ բուֆեր՝ հոսքի համապատասխան հանձնմամբ, օրինակ՝ socket.unshift(head)։ Այն կարող է պարունակել SSH ողջույնը։
Սոքեթը հանձնեք անմիջապես, ապա փակեք ավարտված SFTP աշխատանքը await client.end()-ով։ Այլ տեղում գտնվող HTTP Agent-ը չի ստեղծում այս SSH տրանսպորտը, իսկ CONNECT հաշիվն առանձին է SSH հաշվից։