某些特定的情况下,nodejs作为server需要获取网络文件的大小,开始误区是想把远程文件下载到本地磁盘,然后在读取本地文件就可以知道文件具体大小,但是这里有个很重要的问题就是:下载文件是漫长的,显然不符合我们现有的需求;那么怎么办呢?废话不多说切入正题
一:nodejs自带的https发起网络请求,可以通过header下的content-length来获得大小
async function _getFileSite(url) {
const https = require('https')
const util = require('util')
const getPromise = util.promisify(https.get)
return await getPromise(url).then(res => {
return res.headers['content-length']
}).catch(err => {
return 0
})
}
二:通过axios发起head请求来获得大小
const axios = require("axios")
axios.head(urlAddress).then(res => {
console.log(res.headers['content-length'])
}).catch(err => {
console.log(err)
})