-
用Python实现一个Picgo图床工具
PyPicGo
PyPicGo 是一款图床工具,是PicGo是Python版实现,并支持各种插件自定义插件,目前PyPicGo
自带了gitee
、github
、SM.MS
和七牛云
图传,以及rename
、notify
和typora
等插件,并支持从pypi
中下载其他插件和Uploader
源码地址:
【gitee】https://gitee.com/Ranger313/pypicgo
【github】https://github.com/AnsGoo/PyPicGo
安装
pip install pypicgo
配置
配置文件位于/$HOME/.PyPicGo/config.yml
目录下,采用YAML
的方式进行配置。必须配置上传器uploader
,插件plugins
的数量可选
default: # 默认配置
uploader: gitee # 默认图床
plugins: # 全局插件
- module: pypicgo.plugins.rename.ReNamePlugin # 图床插件加载地址
config:
format: liunx{hash}chenghaiwen{date}-{filename}
- module: pypicgo.plugins.typora.TyporaPlugin
- module: pypicgo.plugins.compress.CompressPlugin
- module: pypicgo.plugins.notify.NotifyPlugin
uploaders: # 可用图床
smms: # sm.ms图床配置
module: pypicgo.uploaders.smms.uploader.SmmsUploader
config:
secret_token: xxx
gitee: # gitee 图床配置
module: pypicgo.uploaders.gitee.uploader.GiteeUploader
config:
domain: https://gitee.com
owner: xxx
repo: xxx
img_path: xxx
access_token: xxx
plugins:
github: # github图床配置
module: pypicgo.uploaders.github.uploader.GithubUploader
config:
domain: https://api.github.com
owner: xxx
repo: xxx
img_path: xxx
oauth_token: xxx
plugins: # github 图床私有插件
- module: pypicgo.plugins.jsdelivr.JsDelivrPlugin
qiniu: #七牛云图床配置
moduele: pypicgo.uploaders.qiniu.uploader.QiNiuUploader
config:
domain: http://demo.pypicho.com/
bucket_name: pypicgo
apis:
- http://up-z1.qiniup.com
access_key: xxx
secret_key: xxxx
更多的配置说明参考文档
使用
- 帮助信息
pypicgo -h
- 上传文件
pypicgo -f picture1 picture2 ...
- 指定上传图床
pypicgo -n github -f picture1 picture2 ...
如果系统找不到pypicgo
,请检查python
的Scripts
文件夹是否被加入Path
环境变量
支持的图床
图床名 | 模块地址 |
---|---|
gitee |
pypicgo.uploaders.gitee.uploader.GiteeUploader |
七牛云 |
pypicgo.uploaders.github.uploader.QiNiuUploader |
github |
pypicgo.uploaders.qiniu.uploader.GithubUploader |
SM.MS |
pypicgo.uploaders.smms.uploader.SmmsUploader |
支持的插件
插件名称 | 用途 | windows | linux | mac |
---|---|---|---|---|
rename | 上传前重命名图片 | 支持 | 支持 | 支持 |
notify | 上传成功失败的系统通知 | 支持 | 支持 | 支持 |
typora | typora编辑器支持 | 支持 | 支持 | 支持 |
compress | 图片上传前压缩 | 支持 | 支持 | 支持 |
jsdelivr | github CDN 加速 | 支持 | 支持 | 支持 |
clipboard | 上传完成将远程地址复制到剪切板 | 支持 | 支持 | 支持 |
Uploader
上传器
uploader是具体的上传插件,用户需要继承pypicgo.core.base.uploader.CommonUploader
并实现upload
方法,然后在配置文件中引用即可.
插件系统
PyPicgo支持的插件分为三种before
、after
和final
插件类型 | 运行时间 | 基类类 | 示例插件 | 运行时入参 |
---|---|---|---|---|
before | 在图片上传前运行 |
pypicgo.core.base.plugin.BeforePlugin |
rename | File |
after | 在图片上传后运行 |
pypicgo.core.base.plugin.AfterPlugin |
notify | Result |
final | 在所有图片上传后运行 |
pypicgo.core.base.plugin.FinallyPlugin |
typora | List[Result] |
如果想自定义插件只要根据要求继承任意一个基类插件,并实现execute
方法,并在config.yml
中配置即可使用.
开发
git clone git@github.com:AnsGoo/PyPicGo.git
cd pypicgo
pipenv shell
pipenv install
python run.py -n 图床名 -f img1.jpg img2.jpg
来源:https://www.cnblogs.com/rangger/p/15559808.html
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
数据库审计与智能监控:从日志分析到异
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比