jsdelivr又崩了?还是把静态资源下载到本地服务器吧!

2022-05-11 11:11:47 浏览数 (1)

为了节省带宽/流量费,一般我们会从静态资源公共库加载常用的js、css文件,比如bootcdn、jsdelivr等等。刚看到群里说jsdelivr又挂了,已经影响网站的正常运行。

其实自己用到的静态文件也就那几个,所以就随手写了一个shell脚本,基本满足我的需求。

该脚本将指定静态文件下载到本地服务器,并保持原始的的目录结构。

提示:本脚本使用了wget,如未安装请先安装。

代码语言:shell复制
# Ubuntu/Debian执行
sudo apt install wget
# CentOS/TencentOS执行
yum install wget

可将本代码保存为dl_cdn.sh

代码语言:shell复制
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin;
export PATH
#修改为本地默认存储根目录
save_path='/www/wwwroot/xxxxxxxx/cdn'

if [ "$1" != "" ]; then
	url=$1
	url_path=$(echo "$url" | cut -d/ -f4-)
	file_name=${url_path##*/}
	save_name=$file_name
	if [ "$3" != "" ]; then
		save_name="$3"
	fi
	file_path=${url_path%/*}
	save_path="$save_path/$file_path"
	if [ "$2" != "" ]; then
		save_path="$"
	fi
	mkdir -p "$save_path"
	file_full_path="$save_path/$save_name"
	wget -q -O "$file_full_path" "$1"
	if [ -s $file_full_path ]; then
		echo "已将${file_name}下载至${file_full_path}";
	else
		echo "下载失败";
	fi
else
	echo "未传入url";
fi

脚本有三种入参方式

1.把文件下载到默认路径

代码语言:shell复制
## 示例1:  dl_cdn.sh url
# 把jQuery下载到默认路径
./dl_cdn.sh https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js 
1个入参1个入参

2.把文件下载到指定路径

代码语言:shell复制
## 示例2: dl_cdn.sh url save_path
# 把jQuery下载到/www/wwwroot/static/jquery目录下
./dl_cdn.sh https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js /www/wwwroot/static/jquery
2个入参2个入参

3.把文件下载到指定路径,并指定文件名

代码语言:shell复制
## 示例3: dl_cdn.sh url save_path file_name
# 把jQuery下载到/www/wwwroot/static目录下,命名为jquery.3.6.0.min.js
./dl_cdn.sh https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js /www/wwwroot/static jquery.3.6.0.min.js
3个入参3个入参

笔者为TDP成员,点击了解TDP详情

0 人点赞