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 + PicGo + Gitee/GitHub ❤️ 免费搭建个人图床