0

我正在处理一项使用 Firebase 功能将图像上传到 SFTP 服务器的任务。但是图像源不是来自我的本地计算机,而是一个 http URL,例如https://image.com/abc.jpg我正在使用ssh2-sftp-client npm 包。目前我将我的mac用于客户端和服务器,当我访问本地文件(/Users/shared/abc.jpeg)并将其上传到本地服务器(/Uesrs/shared/sftp-server/abc. JPEG)。但是当我尝试访问https://image.com/abc.jpg时。并将其上传到本地服务器我收到错误消息"ENOENT: no such file or directory/ ..."。下面是我的代码

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


exports.sftpTest = functions.https.onRequest((request, response) => {

    let sftp = new Client();
    const config = {
        host: '192.***.***.***',
        port: '22',
        username: '****',
        password: '****'
    }



    let localFile = 'https://images.unsplash.com/photo-1487260211189-670c54da558d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=934&q=80';



    let remoteFile = '/Users/Shared/unsplash.JPG';

   sftp.connect(config)
        .then(() => {
            sftp.fastPut(localFile, remoteFile);
        })
        .catch(err => {
            console.error(err.message);
        });

});

我第一次访问 sftp 服务器和任何人的建议将不胜感激。

4

1 回答 1

0

您在此库中使用的方法不支持您尝试设置它的方式使用。fastPut方法通常是将本地文件上传到远程服务器,我认为您应该使用fastGet方法从远程服务器下载文件,但是请注意,没有说明表明您可以使用这些方法您尝试实现的 URL。

于 2019-12-04T14:42:53.053 回答