一个使用Python实现命令行上传图片到LskyPro图床,以及命令行查看LskyPro用户储存情况的小工具
最近在自己的服务器上搭建了一个LskyPro图床,想配合Typora
+Picgo
一起实现博客图片解决方案,但是Picgo现有的插件在我的自建服务上均会报错,所以抽空用Python写了这个命令行程序
使用Python的Click库来创建命令行CLI工具
使用Python的requests库来发送GET和POST请求实现上传和参数的返回
使用Python的os、json库来实现路径的获取、拼接和文件的读取写入
图片压缩的算法参考了这个项目Luban-Py
使用pip
包管理工具安装
pip install lskyup
❯ lskyup --help
Usage: lskyup [OPTIONS] COMMAND [ARGS]...
Options:
-i, --info Show the current token & server information
-v, --version Show the version information
-u, --user Show the User information
--help Show this message and exit.
Commands:
clean Clean Img Cache
config Config your server url and api token
upload Upload the images
配置Server和Token
❯ lskyup config
lskyup Copyright (C) 2023-now Joe Zhu
LICENSE GPL-V3
Please enter your Lsky server's url: https://example.com/api/v1
Please enter your own Lsky token: Bearer x|xxxxxxxxxxxxxxxxxxxxxxxxxxx
配置文件位于用户根目录/lskyup/config.json
curl -X POST \
-d "[email protected]&password=yourpassword" \
-H "Accept: application/json" \
https://example.com/api/v1/tokens
返回值是json
格式的,token
位于data.token
,格式是x|xxxxxxxxxxxxxxxxxxxxxx
token在输入之前请自行加上Bearer
(注意中间有一个空格)
输出当前工具版本等信息
▄█ ▄████████ ▄█ ▄█▄ ▄██ ▄ ███ █▄ ▄███████▄
███ ███ ███ ███ ▄███▀ ███ ██▄ ███ ███ ███ ███
███ ███ █▀ ███▐██▀ ███▄▄▄███ ███ ███ ███ ███
███ ███ ▄█████▀ ▀▀▀▀▀▀███ ███ ███ ███ ███
███ ▀███████████ ▀▀█████▄ ▄██ ███ ███ ███ ▀█████████▀
███ ███ ███▐██▄ ███ ███ ███ ███ ███
███▌ ▄ ▄█ ███ ███ ▀███▄ ███ ███ ███ ███ ███
█████▄▄██ ▄████████▀ ███ ▀█▀ ▀█████▀ ████████▀ ▄████▀
▀ ▀
Version 0.1.2 © JoeZhu ALL RIGHTS RESERVED
LICENSE GPL-V3
CONTACT : [email protected]
输出当前的配置信息
❯ lskyup --info
Server: https://example.com/api/v1
Token: Bearer x|xxxxxxxxxxxxxxxxxxxxxxxxxxx
输出当前配置用户的信息
❯ lskyup --user
USER INFORMATION
User name: Username
E-mail: [email protected]
Website: https://example.com
Image Numbers: 30
Album Numbers: 0
Storage Used/Total: 55122.47 KB/51200000 KB
upload子命令帮助列表
❯ lskyup upload --help
lskyup Copyright (C) 2023-now Joe Zhu
LICENSE GPL-V3
Usage: lskyup upload [OPTIONS] [IMG]...
Upload the images
Options:
-c, --compress Compress your Images before uploading
--help Show this message and exit.
lskyup upload /img1 /img2 /img3
不压缩上传图片,返回图片访问url,支持多张图片(路径之间一个空格)
❯ lskyup upload /img1 /img2 /img3
lskyup Copyright (C) 2023-now Joe Zhu
LICENSE GPL-V3
Uploader is Processing:
Upload uncompressed Img
[####################################] 100%
Upload Success:
https://example.com/i/2023/05/01/644fsdf6eb1bf.webp
https://example.com/i/2023/05/01/3f4fb1d6eb10d.jpg
https://example.com/i/2023/05/01/a6f4fb12hb15f.png
lskyup upload -c /img1 /img2 /img3
压缩后上传图片(增加参数--compress
)
返回图片访问url,同样支持多张图片(路径之间一个空格)
压缩后的图像缓存在用户根目录/lskyup/Img_cache
中
❯ lskyup upload -c /img1 /img2 /img3
lskyup Copyright (C) 2023-now Joe Zhu
LICENSE GPL-V3
Uploader is Processing:
Upload compressed Img
[####################################] 100%
Upload Success:
https://example.com/i/2023/05/01/644fsdf6eb1bf.webp
https://example.com/i/2023/05/01/3f4fb1d6eb10d.jpg
https://example.com/i/2023/05/01/a6f4fb12hb15f.png
清理压缩图片缓存(删除用户根目录/lskyup/Img_cache
文件夹)
❯ lskyup clean
lskyup Copyright (C) 2023-now Joe Zhu
LICENSE GPL-V3
Clean Img_cache successfully
- 增加了config命令的反馈
- 修复了细小的问题
- 修复了一些细小的问题
- 更新了README.md
- 修复了一些细小的问题
- 第一个可以用的版本
GPLv3+ © Zhouyue Zhu