竹林里有冰的博客

竹林里有冰的博客

马上订阅 竹林里有冰的博客 RSS 更新: https://zhul.in/rss.xml

自建图床小记四——上传脚本编写与图片迁移

2024年8月20日 23:12

前面三篇小记分别讲述了图床的整体架构用 Workers 构建 Restful API自动更新部署 SSL 证书,这一篇c处理由此带来的图片上传问题,主要是要为 Typora 编写自动上传脚本,并为博客原有的图片进行迁移。

自动上传脚本

主要还是给 Typora 用,实现这种效果

Typora 自动上传

#!/bin/bashHOST="upload.example.com"CDN_HOST="cdn.example.com"UPLOAD_PATH="uploads/$(date +%Y/%m/%d)"AUTH_TOKEN="1145141919810"webp=falsemarkdown=falseforce=falsekeep=falsewhile getopts ":mwfkp:" opt; do    case $opt in        m|markdown) markdown=true ;;        w|webp) webp=true ;;        f|force) force=true ;;        k|keep) keep=true ;;        p|path) UPLOAD_PATH=$OPTARG ;;        \?) echo "Invalid option: -$OPTARG" ;;    esacdoneshift $((OPTIND - 1))UPLOAD_URL="https://$HOST/$UPLOAD_PATH"if [[ "$UPLOAD_URL" == */ ]]; then    UPLOAD_URL="${UPLOAD_URL%?}"fifor image in "$@"; do    if [ "$webp" = true ]; then        cwebp -quiet "$image" -o "${image%.*}.webp"        image="${image%.*}.webp"    fi    if [ "$keep" = true ]; then        FILENAME=$(basename "$image")    else        FILENAME="$(md5sum $image | cut -c 1-13).$(basename $image | cut -d. -f2)"    fi    if [ "$force" = true ]; then        UPLOAD_RESPONSE=$(curl -s -X PUT "${UPLOAD_URL}/$FILENAME" \            -w "%{http_code}" \            --data-binary @"$image" \            -H "X-Custom-Auth-Key: $AUTH_TOKEN" \            -H "Overwrite:...

剩余内容已隐藏

查看完整文章以阅读更多