Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fastGet observations #407

Closed
amitkirdatt opened this issue Apr 16, 2022 · 5 comments
Closed

fastGet observations #407

amitkirdatt opened this issue Apr 16, 2022 · 5 comments

Comments

@amitkirdatt
Copy link

amitkirdatt commented Apr 16, 2022

Node version: v14.19.1
OS: MacOS 12.1
ssh2-sftp-client: 8.0.0

Issue: We were seeing files being corrupted when using fastGet.
Resolution: We needed to adjust the chunkSize specific to the sftp server we are connecting to

We ended up solving the problem - Just sharing our experience:

Code using ssh2-sftp-client

const Client = require('ssh2-sftp-client');

  const config = {
    host: 'xxx.xxxx.xxxx',
    username: 'xxxxxxx',
    password: 'xxxx'
  };

  const remotePath = '/remote-dir/file.txt';
  const localPath = './file.txt';

  const sftp = new Client();
  await sftp.connect(config);

  await sftp.fastGet(remotePath, localPath);
  await sftp.end();

The text file we are downloading is about ~86MB. We noticed that the file was consistently corrupted (data is missing).

To narrow down the issue we decided to whip up a quick test using ssh2

const { Client } = require('ssh2');

  const config = {
    host: 'xxx.xxxx.xxxx',
    username: 'xxxxxxx',
    password: 'xxxx'
  };

  const remotePath = '/remote-dir/file.txt';
  const localPath = './file.txt';

  const conn = new Client();
  conn.on('ready', () => {
    console.log('Client :: ready');
    conn.sftp((err, sftp) => {
      if (err) throw err;
      sftp.fastGet(remotePath, localPath, (err) => {
        if (err) throw err;
        console.log('Done!');
        conn.end();
      });
    });
  }).connect(config);

We noticed the same corruption.

We then fired up the native sftp client in debug mode and noticed that the server rmax value was 32768 (same as the default chunkSize)

sftp -vv username@xxxx.xxxx.xxx
debug2: channel_input_open_confirmation: channel 0: callback done
debug2: channel 0: open confirm rwindow 1073741824 rmax 32768
debug2: channel_input_status_confirm: type 99 id 0
debug2: subsystem request accepted on channel 0
debug2: Remote version: 3
debug2: Unrecognised server extension "versions"
debug2: Server supports extension "fsync@openssh.com" revision 1
debug2: Server supports extension "posix-rename@openssh.com" revision 1
debug2: Server supports extension "statvfs@openssh.com" revision 2
debug2: Server supports extension "fstatvfs@openssh.com" revision 2
debug2: Server supports extension "hardlink@openssh.com" revision 1

We then added debug logging to ssh2

debug: log => console.log(log)

In the debug we noticed the following:

Inbound: CHANNEL_DATA (r:0, 31965)
SFTP: Inbound: Received DATA (id:5440, 31952)
Outbound: Sending CHANNEL_DATA (r:0, 41)
SFTP: Outbound: Buffered READ
Inbound: CHANNEL_DATA (r:0, 31965)
SFTP: Inbound: Received DATA (id:5441, 31952)
Outbound: Sending CHANNEL_DATA (r:0, 41)
SFTP: Outbound: Buffered READ
Inbound: CHANNEL_DATA (r:0, 31965)
SFTP: Inbound: Received DATA (id:5442, 31952)
Outbound: Sending CHANNEL_DATA (r:0, 41)
SFTP: Outbound: Buffered READ
Inbound: CHANNEL_DATA (r:0, 31965)
SFTP: Inbound: Received DATA (id:5443, 31952)
Outbound: Sending CHANNEL_DATA (r:0, 41)
SFTP: Outbound: Buffered READ
Inbound: CHANNEL_DATA (r:0, 829)
SFTP: Inbound: Received DATA (id:5444, 816)
Inbound: CHANNEL_DATA (r:0, 829)
SFTP: Inbound: Received DATA (id:5445, 816)
Inbound: CHANNEL_DATA (r:0, 829)
SFTP: Inbound: Received DATA (id:5446, 816)
Inbound: CHANNEL_DATA (r:0, 829)
SFTP: Inbound: Received DATA (id:5447, 816)
Inbound: CHANNEL_DATA (r:0, 829)
SFTP: Inbound: Received DATA (id:5448, 816)
Inbound: CHANNEL_DATA (r:0, 829)
SFTP: Inbound: Received DATA (id:5449, 816)
Inbound: CHANNEL_DATA (r:0, 829)
SFTP: Inbound: Received DATA (id:5450, 816)
Inbound: CHANNEL_DATA (r:0, 829)

It looked liked the DATA was being broken up into 2 parts: 1 part was 31952 and the 2nd part was 816, which when added up is 32768. We figured this was causing the issue.

We then specified the chunkSize of 31952 for fastGet.
We didn't see the DATA being broken up into two parts like before (31952 and 816).

Inbound: CHANNEL_DATA (r:0, 31965)
SFTP: Inbound: Received DATA (id:2768, 31952)
Outbound: Sending CHANNEL_DATA (r:0, 41)
SFTP: Outbound: Buffered READ
Inbound: CHANNEL_DATA (r:0, 31965)
SFTP: Inbound: Received DATA (id:2769, 31952)
Outbound: Sending CHANNEL_DATA (r:0, 41)
SFTP: Outbound: Buffered READ
Inbound: CHANNEL_DATA (r:0, 31965)
SFTP: Inbound: Received DATA (id:2770, 31952)
Outbound: Sending CHANNEL_DATA (r:0, 41)
SFTP: Outbound: Buffered READ
Inbound: CHANNEL_DATA (r:0, 31965)
SFTP: Inbound: Received DATA (id:2771, 31952)
Outbound: Sending CHANNEL_DATA (r:0, 41)
SFTP: Outbound: Buffered READ
Inbound: CHANNEL_DATA (r:0, 31965)
SFTP: Inbound: Received DATA (id:2772, 31952)
Outbound: Sending CHANNEL_DATA (r:0, 41)

The files are now downloading correctly.

I am sharing our experience in the hopes that somebody finds it useful.

ssh2-sftp-client updated code that worked for us:

const Client = require('ssh2-sftp-client');

  const config = {
    host: 'xxx.xxxx.xxxx',
    username: 'xxxxxxx',
    password: 'xxxx'
  };

  const remotePath = '/remote-dir/file.txt';
  const localPath = './file.txt';

  const sftp = new Client();
  await sftp.connect(config);

  await sftp.fastGet(remotePath, localPath, {chunkSize: 31952});
  await sftp.end();

ssh2 code:

const { Client } = require('ssh2');

  const config = {
    host: 'xxx.xxxx.xxxx',
    username: 'xxxxxxx',
    password: 'xxxx'
  };

  const remotePath = '/remote-dir/file.txt';
  const localPath = './file.txt';

  const conn = new Client();
  conn.on('ready', () => {
    console.log('Client :: ready');
    conn.sftp((err, sftp) => {
      if (err) throw err;
      sftp.fastGet(remotePath, localPath,  {chunkSize: 31952}, (err) => {
        if (err) throw err;
        console.log('Done!');
        conn.end();
      });
    });
  }).connect(config);
@theophilusx
Copy link
Owner

This is great work! Clearly articulated and good methodical research. Thanks for sharing.

Can I ask, since this does indicate an issue with fastGet packet size negotiation in ssh2, would you mind also posting it to the ssh2 project. I suspect this information would prove very useful there.

Finally, I would like to add some of this to the README (in the trouble shooting section). Is that OK with you?

@amitkirdatt
Copy link
Author

Thank you. I posted it on the ssh2 repo as well: mscdex/ssh2#1166

Please feel free to use it for the README.

Thank you for your work on this repo!

@Michael-Gibbons
Copy link

@amitkirdatt Thank you for creating this issue, I was able to replicate. I was very skeptical to believe that fastGet was the culprit.

@nitzan-blink
Copy link

this hit me pretty hard.
thanks for the testing @amitkirdatt
I think it will be better to make a one-line reference to https://github.com/theophilusx/ssh2-sftp-client?tab=readme-ov-file#issues-with-fastput-and-fastget-methods in the fastGet/fastPut descriptions

@iajaysharma
Copy link

Didn't work in case of fastPut, files got corrupted on sftp, tried with multiple chunk sizes.

info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 86) {"timestamp":"2024-08-01T05:21:49.771Z"}
info: SFTP :: SFTP: Outbound: Buffered OPEN {"timestamp":"2024-08-01T05:21:49.772Z"}
info: SFTP :: Inbound: CHANNEL_DATA (r:0, 24) {"timestamp":"2024-08-01T05:21:51.130Z"}
info: SFTP :: SFTP: Inbound: Received HANDLE (id:9) {"timestamp":"2024-08-01T05:21:51.131Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.133Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.134Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:10) {"timestamp":"2024-08-01T05:21:51.134Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.134Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.134Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:11) {"timestamp":"2024-08-01T05:21:51.134Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.134Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.135Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:12) {"timestamp":"2024-08-01T05:21:51.135Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.135Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.135Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:13) {"timestamp":"2024-08-01T05:21:51.135Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.135Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.135Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:14) {"timestamp":"2024-08-01T05:21:51.135Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.135Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.136Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:15) {"timestamp":"2024-08-01T05:21:51.136Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.136Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.136Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:16) {"timestamp":"2024-08-01T05:21:51.136Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.136Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.137Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:17) {"timestamp":"2024-08-01T05:21:51.137Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.137Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.137Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:18) {"timestamp":"2024-08-01T05:21:51.137Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.137Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.137Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:19) {"timestamp":"2024-08-01T05:21:51.137Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.138Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.138Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:20) {"timestamp":"2024-08-01T05:21:51.138Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.138Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.138Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:21) {"timestamp":"2024-08-01T05:21:51.138Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.138Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.138Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:22) {"timestamp":"2024-08-01T05:21:51.138Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.139Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.139Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:23) {"timestamp":"2024-08-01T05:21:51.139Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.139Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.139Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:24) {"timestamp":"2024-08-01T05:21:51.139Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.139Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.139Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:25) {"timestamp":"2024-08-01T05:21:51.139Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.140Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.140Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:26) {"timestamp":"2024-08-01T05:21:51.140Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.140Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.140Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:27) {"timestamp":"2024-08-01T05:21:51.140Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.140Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.140Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:28) {"timestamp":"2024-08-01T05:21:51.140Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.141Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.141Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:29) {"timestamp":"2024-08-01T05:21:51.141Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.141Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.141Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:30) {"timestamp":"2024-08-01T05:21:51.141Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.141Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.141Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:31) {"timestamp":"2024-08-01T05:21:51.142Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.142Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.142Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:32) {"timestamp":"2024-08-01T05:21:51.142Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.142Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.142Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:33) {"timestamp":"2024-08-01T05:21:51.142Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.142Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.142Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:34) {"timestamp":"2024-08-01T05:21:51.142Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.143Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.143Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:35) {"timestamp":"2024-08-01T05:21:51.143Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.143Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.143Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:36) {"timestamp":"2024-08-01T05:21:51.143Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.143Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.143Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:37) {"timestamp":"2024-08-01T05:21:51.143Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.144Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.144Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:38) {"timestamp":"2024-08-01T05:21:51.144Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.144Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.144Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:39) {"timestamp":"2024-08-01T05:21:51.144Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.144Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.144Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:40) {"timestamp":"2024-08-01T05:21:51.144Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.145Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.145Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:41) {"timestamp":"2024-08-01T05:21:51.145Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.145Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.145Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:42) {"timestamp":"2024-08-01T05:21:51.145Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.145Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.145Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:43) {"timestamp":"2024-08-01T05:21:51.146Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.146Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.146Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:44) {"timestamp":"2024-08-01T05:21:51.146Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.146Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.146Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:45) {"timestamp":"2024-08-01T05:21:51.146Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.146Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.146Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:46) {"timestamp":"2024-08-01T05:21:51.147Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.147Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.147Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:47) {"timestamp":"2024-08-01T05:21:51.147Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.147Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.147Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:48) {"timestamp":"2024-08-01T05:21:51.147Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.147Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.147Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:49) {"timestamp":"2024-08-01T05:21:51.148Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.148Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.148Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:50) {"timestamp":"2024-08-01T05:21:51.148Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.148Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.148Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:51) {"timestamp":"2024-08-01T05:21:51.148Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.148Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.148Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:52) {"timestamp":"2024-08-01T05:21:51.149Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.149Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.149Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:53) {"timestamp":"2024-08-01T05:21:51.149Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.149Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.149Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:54) {"timestamp":"2024-08-01T05:21:51.149Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.150Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.150Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:55) {"timestamp":"2024-08-01T05:21:51.150Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.150Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.150Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:56) {"timestamp":"2024-08-01T05:21:51.150Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.150Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.150Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:57) {"timestamp":"2024-08-01T05:21:51.151Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.151Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.151Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:58) {"timestamp":"2024-08-01T05:21:51.151Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.151Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.151Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:59) {"timestamp":"2024-08-01T05:21:51.151Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.151Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.151Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:60) {"timestamp":"2024-08-01T05:21:51.152Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.152Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.152Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:61) {"timestamp":"2024-08-01T05:21:51.152Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.152Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.152Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:62) {"timestamp":"2024-08-01T05:21:51.152Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.152Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.152Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:63) {"timestamp":"2024-08-01T05:21:51.153Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.153Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.153Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:64) {"timestamp":"2024-08-01T05:21:51.153Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.153Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.153Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:65) {"timestamp":"2024-08-01T05:21:51.153Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.153Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.154Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:66) {"timestamp":"2024-08-01T05:21:51.154Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.154Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.154Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:67) {"timestamp":"2024-08-01T05:21:51.154Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.155Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.155Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:68) {"timestamp":"2024-08-01T05:21:51.155Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.155Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.155Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:69) {"timestamp":"2024-08-01T05:21:51.155Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.155Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.156Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:70) {"timestamp":"2024-08-01T05:21:51.156Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.156Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.156Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:71) {"timestamp":"2024-08-01T05:21:51.156Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.156Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.156Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:72) {"timestamp":"2024-08-01T05:21:51.156Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 32648) {"timestamp":"2024-08-01T05:21:51.157Z"}
info: SFTP :: Outbound: Sending CHANNEL_DATA (r:0, 156) {"timestamp":"2024-08-01T05:21:51.157Z"}
info: SFTP :: SFTP: Outbound: Sent WRITE (id:73) {"timestamp":"2024-08-01T05:21:51.157Z"}
info: SFTP :: Inbound: CHANNEL_DATA (r:0, 53) {"timestamp":"2024-08-01T05:21:51.254Z"}
info: SFTP :: SFTP: Inbound: Received STATUS (id:10, 0, "The write completed successfully") {"timestamp":"2024-08-01T05:21:51.255Z"}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants