我正在使用在heroku上托管的nodejs FTP客户端,但我连接的端点需要将我的静态IP列入白名单。 Heroku不提供静态IP,因此我使用的是QuotaGuard插件。我对如何使用QuotaGuard网址代理我的FTP连接感到有点迷茫。
我感谢任何帮助!
答案 0 :(得分:0)
您可以使用node-ftp包的fork来执行此操作,但它不在NPM中,因此需要一些手动安装。
在本地克隆回购邮件:git clone git@github.com:choonyme/node-socksftp.git
将socksftp目录复制到项目目录中(例如cp -r node-socksftp/socksftp ./node_modules/
将QuotaGuard静态连接详细信息导出到名为QUOTAGUARDSTATIC_URL的本地env变量。
然后,您可以使用与原始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与我们的支持小组联系,我们会更快地做出回应。