сохранить изображение на удаленный sftp сервер, отправленный пользователем - PullRequest
0 голосов
/ 20 декабря 2018

Я хочу загрузить файл на удаленный сервер sftp, используя ssh2-sftp-client.Я получаю файл от пользователя в почтовом запросе вместе с пунктом назначения.Я использую multer для обработки файла.

const Client = require('ssh2-sftp-client');
const sftp = new Client();
const Multer = require("multer")
const multer = Multer({
    storage: Multer.MemoryStorage
});

app.put("/sftp", multer.single('file'), (req, res) => {
    sftpCredentials = req.query;
    sftp.connect({
        host: sftpCredentials.host,
        port: sftpCredentials.port,
        username: sftpCredentials.username,
        password: sftpCredentials.password
    }).then(res =>{
      sftp.put(req.file,req.query.destination);
    })
})

Я получаю сообщение об ошибке:

TypeError: "string" must be a string, Buffer, or ArrayBuffer

1 Ответ

0 голосов
/ 20 декабря 2018
sftp.put(localfilepath, remoteFilepath)

для локального пути к файлу:

req.file.path

Вы использовали только "req.file".Если вы также хотите получить имя файла, используйте: req.file.originalname

Во-вторых, убедитесь, что «req.query.destination» дает вам путь назначения, куда вы хотите поместить файл.

И, используйте регистрацию.Это облегчает жизнь.

...