我正在使用托管在 heroku 上的 nodejs FTP 客户端,但我连接的端点需要将我的静态 IP 列入白名单。Heroku 不提供静态 IP,所以我使用 QuotaGuard 插件。我对如何使用 QuotaGuard url 代理我的 FTP 连接有点迷茫。
我很感激任何帮助!
我正在使用托管在 heroku 上的 nodejs FTP 客户端,但我连接的端点需要将我的静态 IP 列入白名单。Heroku 不提供静态 IP,所以我使用 QuotaGuard 插件。我对如何使用 QuotaGuard url 代理我的 FTP 连接有点迷茫。
我很感激任何帮助!
您可以使用 node-ftp 包的分支来执行此操作,但它不在 NPM 中,因此需要一些手动安装。
在本地克隆 repo:git clone git@github.com:choonyme/node-socksftp.git
将 socksftp 目录复制到您的项目目录中(例如cp -r node-socksftp/socksftp ./node_modules/
将您的 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联系我们的支持团队,我们会尽快回复。