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 ანგარიშისგან ცალკეა.

დაკავშირებული სტატიები