0

我正在使用托管在 heroku 上的 nodejs FTP 客户端,但我连接的端点需要将我的静态 IP 列入白名单。Heroku 不提供静态 IP,所以我使用 QuotaGuard 插件。我对如何使用 QuotaGuard url 代理我的 FTP 连接有点迷茫。

我很感激任何帮助!

4

1 回答 1

0

您可以使用 node-ftp 包的分支来执行此操作,但它不在 NPM 中,因此需要一些手动安装。

  1. 在本地克隆 repo:git clone git@github.com:choonyme/node-socksftp.git

  2. 将 socksftp 目录复制到您的项目目录中(例如cp -r node-socksftp/socksftp ./node_modules/

  3. 将您的 QuotaGuard 静态连接详细信息导出到名为 QUOTAGUARDSTATIC_URL 的本地环境变量中。

然后,您可以使用与原始 node-ftp 包中相同的所有 FTP 命令。

var url = require('url');
var Client = require('socksftp');

var httpProxyUrl = process.env.QUOTAGUARDSTATIC_URL;
// Make sure to switch to the SOCKS5 proxy port 1080
var socksProxyUrl = httpProxyUrl.replace(":9293",":1080");  

var server = {
    'host': 'ftp.linuxjournal.com',
    'port': 21,
    'socksproxy': socksProxyUrl
};

var c = new Client();
c.on('ready', function() {
    c.list(function(err, list) {
      if (err) throw err;
      console.dir(list);
      c.end();
    });
});

c.on('error', function(err){
    console.error('socksftp error: ' + err);
    return;
});

c.connect(server);

为了将来参考,您可以通过http://support.quotaguard.com联系我们的支持团队,我们会尽快回复。

于 2015-06-14T14:06:18.063 回答