_append(input, rPath, opts, addListeners = true) {
    let listeners;
    return new Promise((resolve, reject) => {
      if (addListeners) {
        listeners = addTempListeners(this, '_append', reject);
      }
      if (haveConnection(this, '_append', reject)) {
        opts.flags = 'a';
        const stream = this.sftp.createWriteStream(rPath, opts);
        stream.on('error', (err) => {
          reject(this.fmtError(`${err.message} ${rPath}`, 'append', err.code));
        });
        stream.on('close', () => {
          resolve(`Appended data to ${rPath}`);
        });
        if (input instanceof Buffer) {
          stream.write(input);
          stream.end();
        } else {
          input.pipe(stream);
        }
      }
    }).finally(() => {
      if (addListeners) {
        removeTempListeners(this, listeners, '_append');
      }
    });
  }
Append to an existing remote file

@param  {Buffer|stream} input
@param  {String} remotePath
@param  {Object} options
@return {Promise<String>}