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

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

苏苏
2022-04-29 / 0 评论 / 45 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年05月30日,已超过1160天没有更新,若内容或图片失效,请留言反馈。

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

其实自己用到的静态文件也就那几个,不如直接放自己服务器上,所以就随手写了一个shell脚本,基本满足我的需求。

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

  • 提示:本脚本使用了wget,如未安装请先安装。
# Ubuntu/Debian执行
sudo apt install wget
# CentOS/TencentOS执行
yum install wget

可将本代码保存为dl_cdn.sh

#!/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.把文件下载到默认路径

命令格式: dl_cdn.sh url

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

命令格式: dl_cdn.sh url save_path

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

命令格式: dl_cdn.sh url save_path file_name

同步发布: https://cloud.tencent.com/developer/article/1989948
1

评论 (0)

取消