Typora搭建Gitee图床(通过shell脚本实现)

Posted 南枝向暖北枝寒MA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Typora搭建Gitee图床(通过shell脚本实现)相关的知识,希望对你有一定的参考价值。

Typora搭建Gitee图床

前提:适用于Windows平台

首先创建了一个目录 C:\\uploadtogitee ,然后在该目录下创建 image 目录用于存放本地图片,创建 upload.sh 文件用于上传图片到 Gitee。(你也可以不按照这个目录结构,只要知道文件位置就好)

注意:目录名不能有空格。

upload.sh 文件中的代码如下:

#--------------config------------------------#
# gitee上的私人令牌
token="xxxxxx"
# 提交文件的消息
msg="typora_add_commit"
# 注册仓库后仓库地址中的用户名
owner="xxxxxx"
# 注册仓库后仓库地址中的仓库名
repo_name="xxxxxx"
#--------------config end------------------------#
declare -a result=()

# 生成随机字符串的方法
function rand()
    filename= openssl rand -hex 16
    echo $filename


function upload()
    res=""
    # 生成日期格式的文件夹和16位的随机字符串
    filepath=$(date +%Y-%m-%d)/$(rand).jpeg
    # base64 太长时会报错参数列表太长,这里使用 使用 @- 从标准输入中获取数据。利用echo输出到标准输入,再利用管道重定向输入到curl的-d参数中。
    res=`echo '"access_token":"'$token'","message":"'$msg'","content":"'$1'"' \\ |
    curl -o /dev/null -s -w %http_code -X POST -H 'Content-type':'application/json' -d @- https://gitee.com/api/v5/repos/$owner/$repo_name/contents/typora/$filepath`
    # 判断返回状态码是否为201 是返回地址,不是提示上传失败
    if [ 201 -eq "$res" ];then
    result+=(https://gitee.com/$owner/$repo_name/raw/master/typora/$filepath)
    else
    echo "上传失败!"
    fi

for var in "$@"
do
   # 读取上传图片转为base64
   in=$( base64 -w 0 $var)
   upload "$in"
done
for res in "$result[@]"
do
    echo "$res"
done

在Typora —> 文件 —> 偏好设置 —> 图像中设置:

其中,

  • 插入图片时选择 复制到指定路径
  • 上传服务选择 Custom Command(自定义命令)
    C:\\Git\\bin\\sh.exe C:\\uploadtogitee\\upload.sh
    

注意:上传的图片不能超过 1MB ,否则无法正常显示,是需要登陆才可以查看的。

以上是关于Typora搭建Gitee图床(通过shell脚本实现)的主要内容,如果未能解决你的问题,请参考以下文章

Typora搭建Gitee图床(通过shell脚本实现)

Typora搭建Gitee图床(通过shell脚本实现)

Typora + gitee 搭建个人图床

❤️ Typora + PicGo + Gitee/GitHub ❤️ 免费搭建个人图床

❤️ Typora + PicGo + Gitee/GitHub ❤️ 免费搭建个人图床

软件创新实验室2021年暑假集训使用Typora+gitee搭建图床