如何使用QuotaGuard静态设置FTP静态IP?

时间:2015-06-12 20:52:01

标签: node.js heroku ftp static-ip-address

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

我感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

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

  1. 在本地克隆回购邮件:git clone git@github.com:choonyme/node-socksftp.git

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

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

  4. 然后,您可以使用与原始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与我们的支持小组联系,我们会更快地做出回应。