检查公共远程ftp服务器上是否存在文件

时间:2020-10-28 22:00:57

标签: node.js

我正在尝试检查公共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
});

2 个答案:

答案 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?

相关问题