使用说明 - cli.py
警告
cli.py已经废弃,picbed源仓库在v1.10.5后续版本移除,请使用 picbed-cli/sapicli with golang 代替。
在 1.6.0 版本加入.
相关代码在源仓库的 cli目录下
脚本是 cli.py , 单独使用,用以命令行形式上传本地图片,不依赖第三方模块,支持python2.7、3.x
Windows下可以使用cli/picbed-cli.exe,打包好的,无需本地安装Python环境。
在 1.9.0 版本发生变更: 支持上传临时图片
在 1.10.0 版本发生变更: style允许自行扩展;默认输出由打印每个结果(json object)改为打印整体结果(json array)
在 1.10.5 版本发生变更: 增加 line 输出风格;增加copy选项,复制图片上传后的url,支持markdown、rST格式。
$ python cli.py -h
usage: picbed cli [-h] [-u PICBED_URL] [-t PICBED_TOKEN] [-a ALBUM] [-d DESC]
[-e EXPIRE] [-s STYLE] [-c {url,md,rst}]
file [file ...]
More docs to https://picbed.rtfd.vip/cli.html
positional arguments:
file Local file
optional arguments:
-h, --help show this help message and exit
-u PICBED_URL, --picbed-url PICBED_URL
The picbed upload api url.
Or use environment variable: picbed_cli_apiurl
-t PICBED_TOKEN, --picbed-token PICBED_TOKEN
The picbed LinkToken.
Or use environment variable: picbed_cli_apitoken
-a ALBUM, --album ALBUM
Set image album
-d DESC, --desc DESC Set image title(description)
-e EXPIRE, --expire EXPIRE
Set image expire(seconds)
-s STYLE, --style STYLE
The upload result output style: { default, typora, line }.
Or, allows the use of "module.function" to customize the output style.
-c {url,md,rst}, --copy {url,md,rst}
Copy the uploaded image url type to the clipboard for win/mac/linux.
By the way, md=makrdown, rst=reStructuredText
- -u: 指定图床的服务地址,http[s]://你的picbed域名
可以通过环境变量 picbed_cli_apiurl 设定
- -t: 设置LinkToken用以认证、授权,要求拥有
api.upload
的post
权限 可以通过环境变量 picbed_cli_apitoken 设定
-a: 设置相册名(可以覆盖LinkToken设置的默认相册)
-d: 设置图片描述
-e: 指定过期时间(秒),作为临时图片上传
-s: 指定输出风格,支持typora、default、{DIY}
typora: 专为Typora编辑器上传图片准备的格式
line: 跟typeora类似,只不过没有先打印upload success,仅打印每个图片url
- {DIY}: 编写Python实现自定义输出,其格式是: module.function
cli.py会尝试加载module模块,执行其function函数, 传参是result(列表,每个元素都是字典,是图片上传的响应结果)
示例:
$ cat output.py import json def pretty(result): for i in result: print(json.dumps(i)) $ python cli.py -s output.pretty upload_file...default: 默认值,打印JSON格式的整体结果(即result)
-c: 即开启复制,脚本会识别操作系统,复制上传后的图片url到系统剪贴板
Windows下使用DOS命令clip,执行成功,有消息通知(仅win10)
MacOS下使用pbcopy命令,执行成功,有消息通知
Linux下使用xclip,需要自行安装,但是字符终端测试失败,预计仅用于图形模式。
部分情况会复制失败,比如没有上传成功的图片、上传前就出错了等。
copy允许设定复制图片上传地址的格式,支持url、md、rst格式
比如上传1.png,上传后返回url是http://cdn.com/1.png,那么ct=url会直接复制这个url, ct=md,复制的是:![1.png](http://cdn.com/1.png)
可以上传多个文件,复制的结果会用 \n 连接。
应用示例
作为自定义命令在使用Typora时上传图片到picbed
Typora 是一款跨平台的Markdown编辑器, 在编写内容时可以对图片进行特殊处理,比如上传图片。
打开Typora,定位到偏好设置-图像,选择插入图片时-上传图片,上传服务设定:
上传服务:Custom Command
自定义命令:python cli.py -u {picbed url} -t {LinkToken} -s typora
测试:点击『验证图片上传选项』按钮,验证是否成功。
Windows系统的图片文件添加右键菜单:upload to picbed
如果你想在Windows资源管理器中,任意图片右键就能上传到picbed的话,OpenWithPlusPlus是个 不错的程序。
github: stax76/OpenWithPlusPlus
在release下载打包的zip压缩包解压,打开程序,先install(也许你需要重启下资源管理器或电脑), 之后添加add新增右键菜单,部分参数解释如下:
Path:是python程序路径,如果你的Windows操作系统没有Python也可以,cli.py已经打包成exe, 位于cli/picbed-cli.exe
Arguments: cli.py文件路径及参数,如果是打包的exe,就不要cli.py,只需要后面参数,其中 -ct 参数是复制的类型,默认url,可选md(markdown)、rst(reStructuredText)
如果本地有python环境,参照下图示例填写:
如果本地无python环境,参照下图示例填写:
ps: 图片名以中文开头上传失败,但允许在其他位置。
MacOS系统添加右键菜单
环境:macOS Cataline 10.15
打开启动台-自动操作,新建文稿,类型是快速操作,选取确定后,按照如下示例填写:
工作流程收到当前:图像文件
位于:访达
图像/颜色:随便
下面的工作流程,拖拽资源库-实用工具-运行shell脚本, shell选择 /bin/bash ,传递输入选择 作为自变量 ,脚本内容:
python ~/code/picbed/cli/cli.py -u https://sapicd.com -t xxx -c md "$@"
ps: cli.py需要下载到本地,路径自适应修改。
ps: 图片名以中文开头上传失败,但允许在其他位置。