Как мне подключиться к FTP-серверу GoDaddy, у которого есть только имя пользователя и пароль?

Я пытаюсь загрузить zip-файл с ftp-сервера GoDaddy с помощью узла-ftp, но узел-ftp меняет пустые пароли на "анонимный @" по умолчанию в их функции подключения. Как я могу подключиться к их FTP-серверу, используя только имя пользователя и пароль?

Отсканировав исходный код, они меняют пароль на анонимный @ здесь: https://github.com/mscdex/node-ftp/blob/master/lib/connection.js#L92

const FTPClient = require('ftp');
const fs = require('fs');
const extract = require('extract-zip');

let getGoDaddyAuctionListings = () => {

    let config = {
        directory: "/tmp/",
        file: "auctions_ending_today.json.zip"
    };
    config.filePath = config.directory + config.file;
    let c = new FTPClient();

    c.on('ready', () => {
        c.get(config.file, (err, stream) => {
            if (err) throw err; //todo: change to handleError function
            stream.once('close', () => { c.end(); });
            stream.pipe(fs.createWriteStream(config.filePath));
            extract(config.filePath, {dir:config.dir}, (err) => {
               if (err) throw err;
            });
        })
    });

    c.connect({
        host: 'ftp.godaddy.com',
        user: 'auctions',
        password: ' '
    });

};

getGoDaddyAuctionListings();
> node godaddyAuctions.js

events.js:174
      throw er; // Unhandled 'error' event
      ^

Error: Login incorrect.
    at makeError (C:\Users\jim\pbn-finder\node_modules\ftp\lib\connection.js:1067:13)
    at Parser.<anonymous> (C:\Users\jim\pbn-finder\node_modules\ftp\lib\connection.js:113:25)
    at Parser.emit (events.js:189:13)
    at Parser._write (C:\Users\jim\pbn-finder\node_modules\ftp\lib\parser.js:59:10)
    at doWrite (_stream_writable.js:415:12)
    at writeOrBuffer (_stream_writable.js:399:5)
    at Parser.Writable.write (_stream_writable.js:299:11)
    at Socket.ondata (C:\Users\jim\pbn-finder\node_modules\ftp\lib\connection.js:273:20)
    at Socket.emit (events.js:189:13)
    at addChunk (_stream_readable.js:288:12)
Emitted 'error' event at:
    at Object.reentry [as cb] (C:\Users\jim\pbn-finder\node_modules\ftp\lib\connection.js:192:14)
    at Parser.<anonymous> (C:\Users\jim\pbn-finder\node_modules\ftp\lib\connection.js:113:22)
    at Parser.emit (events.js:189:13)
    [... lines matching original stack trace ...]
    at addChunk (_stream_readable.js:288:12)

1 ответ

Этот код:

this.options.password = options.password ||
    options.password === '' ? options.password : 'anonymous@';

позволяет пустой пароль, но вы не даете ему пустой:

password: ' '

Вы установили пароль на пробел. Сделай это:

password: ''

и это должно работать нормально.

Другие вопросы по тегам