jquery选择图片自动上传_Typora自定义命令自动上传图片

Typora是我非常喜欢的Markdown编辑器,之前的一个更新,Typora支持了“上传图像”的功能(即写文章时,插入图片自动将其上传至图床),我们可以直接借助IPic、uPic、PicGo等程序,配合Typora自动将图片上传至又拍云等对象存储平台。

dc2f45b693ad57955ad5aefedc703e4f.png

一起开始吧

以Typora自定义命令上传图片为例,当我们从我们插入一张图片时,发生了什么?我们在Typora插入一张本地的图片后,Typora会调用预先设置的自定义命令(通常是运行一个脚本)来上传图片,自定义命令(脚本)上传完图片后输出(注意这里有坑)相应的URL,Typora会读取该URL,并自动把本地图片地址替换为相应的URL。所以只要配置得当,我们在写作时,只需要准备好素材,直接对素材command + ccommand + v了。

0f4b287cefbb45e557c9b072580944e4.png

综上所述,如果我们要通过自定义命令来上传图片,只需要三步:

  • 编写能够上传图片至相应的图床或者对象存储的脚本
  • 在偏好设置中进行相应的设置
  • 测试是否正常

编写脚本

#!/bin/bash
# 各类配置信息
bucket="sample" # 云存储服务的名称
remote_path="default/" # 上传默认的路径
auth="xxxxxxx" # 操作员名和操作员密码按照operator:password拼接Base64编码
base_url="https://xxx.xxx.xx/" # 对象存储绑定的域名

# 上传图片
for i in "$@"; do
    curl https://v0.api.upyun.com/"$bucket"/"$remote_path" -H "Authorization: Basic ""$auth" --upload-file "$i"
done

# 输出结果
echo "Upload Success:"
for file in "$@"; do
    IFS='/' read -r -a array <<"$file"
    id="${#array[@]}"
    echo "$base_url""$remote_path""${array[$id-1]}"
done
Copy

脚本相对简单(具体API可以参考),分为三部分:

  • 各类配置信息。又拍云对象存储相关的信息。
  • 上传图片。使用curl命令调用REST API上传图片。
  • 输出结果。适配Typora,输出结果。

我们在写一个脚本的时候,大体上关注三部分内容,输入、处理过程和输出。处理过程是自己实现的所以还好,但Typora上传图片自定义命令的「传参和输出」是真的奇坑。

  • 传参。Typora上传图片调用自定义命令时,会将待上传的图片作为命令行参数,传入脚本。如bash upload.sh 1.jpg 2.jpg,这里具体有几张待上传的图片不确定,所以参数长度是不固定的,你的脚本必须上传所有作为参数传入的图片。Typora并没有在文档中直接说明这一点(传参的方式、长度),真的给我坑坏了。

  • 输出。事实上,Typora并不关心我们脚本中上传图片的具体过程如何,它只关心我们脚本的最终输出。Typora要求脚本输出结果的方式简单粗暴,直接echo(其他语言比如Python的print)。注意,直接echo也是有格式要求的,脚本需要首先输出Upload Success:,之后,一行对应一个URL,具体格式如下:

    Upload Success:
    https://sample.com/1.jpg
    https://sample.com/2.jpg

事实上,你可以使用任何变成语言,上传图片至任意的平台。只要你脚本处理好传入的参数,上传完所有图片,最终的输出结果是上面的格式即可。

微信公众号图库

如果是做微信的文章分享,可以使用微信的图床, 查看微信开发者文档可知,微信的素材库是100000个,但是"上传图文信息的图片"不占用总的素材库的数量,换句话就是不限量使用

8db5f3a0518c472f96acf6d1af690c19.png

我们可以调用微信的接口来上传图片(注意:微信的图库不能外链,只限于微信平台使用),查询文档可知,微信的上传需要在微信公众平台设置调用的IP白名单来获取token,对于没有公网IP的用户来说,只能购买一台固定IP的服务器来实现图片的上传,这里我使用go来实现了后台获取Token,并接受前台传递过来的图片中传到微信的服务器,详细请留意后面的文章

前台sh脚本就很简单,接受多个本地的图片地址参数 ,并依次取出图片地址,再用使用curl来

3e3de693b5cc6a13f2641c2200455fc4.png

偏好设置

Typora上传脚本支持的自定义命令,可以在偏好设置中选择。上传服务选择Custom Command,自定义命令就是我们插入图片后,Typora调用的命令。如刚才我们的脚本名称为upload.sh,自定义命令就可以设为bash upload.sh,注意替换upload.sh的路径为绝对路径。

a9de79b40df1a66cf257ad5e90daf69d.png

测试是否正常

将图片直接拖入到Typora中,或者粘贴至剪切板,Typora会自动调用脚本,将图片上传至微信的服务器,并插入markdown语法到文章中

2aea2397bbf8a6031538c0f25c810cc6.png

94a837a2a98b42588117f92e9ddf4845.png

图片上传功能的加入,极大方便了写作的过程,想想之前,写文章需要手动将图片拖到图床APP,再把URL复制到文章中,就两个字,“繁琐”。插入图片直接command + v,写作原本就该这么简单嘛!

e5af696a058bbb8f8238f1f1b9780a1b.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值