Сохранить изображение на удаленный sftp сервер, отправленный пользователем
Я хочу загрузить файл на удаленный сервер 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 ответ
sftp.put(localfilepath, remoteFilepath)
для локального пути к файлу:
req.file.path
Вы использовали только "req.file". Если вы тоже хотите получить имя файла, используйте: req.file.originalname
Во-вторых, убедитесь, что "req.query.destination" дает вам путь назначения, куда вы хотите поместить файл.
И, используйте использование регистрации. Это облегчает жизнь.