我正在尝试检查公共FTP服务器上是否存在文件
ftp://ftp.ensembl.org/pub/release-100/tsv/homo_sapiens/Homo_sapiens.GRCh38.100.entrez.tsv.gz
我试图像这样使用url-exists
,但没有成功。
var urlExists = require('url-exists');
url1 = 'ftp://ftp.ensembl.org/pub/release-100/tsv/homo_sapiens/Homo_sapiens.GRCh38.100.entrez.tsv.gz'
urlExists(url1, function(err, exists) {
console.log(url1)
console.log(exists); // false
});
这确实适用于http网址
var urlExists = require('url-exists');
url1 = 'https://www.google.com/'
urlExists(url1, function(err, exists) {
console.log(url1)
console.log(exists); // true
});
答案 0 :(得分:2)
是的,FTP不是HTTP,您会看到它在浏览器中有效,因为浏览器可以处理ftp协议。
如果您定位到特定的ftp站点,则可以将ftp://
替换为http://
,因为它们也可以通过HTTP进行服务
例如:
http://ftp.ensembl.org/pub/release-100/tsv/homo_sapiens/Homo_sapiens.GRCh38.100.entrez.tsv.gz
答案 1 :(得分:0)
除非ftp已打开并且不需要身份验证。我建议使用一些npm软件包与ftp服务器通信。实际上,即使不需要身份验证,您也必须建立与服务器的连接。
就像上面的劳伦斯·谢隆(Lawrence Cherone)所建议的那样。大多数现代的FTP服务器都支持某些HTTP集成,并从以下位置更改URL协议前缀 FTP到HTTP(S)应该可以解决问题
结帐-此帖子-Node.js connect to ftp and download files,推荐此套餐 https://github.com/mscdex/node-ftp
建立连接并使用可用的API搜索文件。
最后,我建议阅读有关FTP和HTTP(S)协议之间差异的文章 Access FTP via HTTP?