Skip to main content

A tool enables you to upload your img to your Lsky Server

Project description

 ▄█          ▄████████    ▄█   ▄█▄ ▄██      ███    █▄     ▄███████▄
███         ███    ███   ███ ▄███▀ ███   ██▄ ███    ███   ███    ███
███         ███    █▀    ███▐██▀   ███▄▄▄███ ███    ███   ███    ███
███         ███         ▄█████▀    ▀▀▀▀▀▀███ ███    ███   ███    ███
███       ▀███████████ ▀▀█████▄    ▄██   ███ ███    ███ ▀█████████▀
███                ███   ███▐██▄   ███   ███ ███    ███   ███
███▌        ▄█    ███   ███ ▀███▄ ███   ███ ███    ███   ███
█████▄▄██  ▄████████▀    ███   ▀█▀  ▀█████▀  ████████▀   ▄████▀
▀                        

LskyUp

PyPI - Python VersionPyPI - LicenseGitHub commit activityPyPIGitHub repo sizeGitHub top languageAuthor: JoeZhu (shields.io)Thanks (shields.io)for (shields.io)visiting (shields.io)my (shields.io)repository (shields.io)A Star ? (shields.io)

介绍

一个使用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

lskyup config

配置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

获取token

curl -X POST \
-d "email=youremail@example.com&password=yourpassword" \
-H "Accept: application/json" \
https://example.com/api/v1/tokens

返回值是json格式的,token位于data.token,格式是x|xxxxxxxxxxxxxxxxxxxxxx

token在输入之前请自行加上Bearer(注意中间有一个空格)

lskyup --version

输出当前工具版本等信息

 ▄█          ▄████████    ▄█   ▄█▄ ▄██      ███    █▄     ▄███████▄
███         ███    ███   ███ ▄███▀ ███   ██▄ ███    ███   ███    ███
███         ███    █▀    ███▐██▀   ███▄▄▄███ ███    ███   ███    ███
███         ███         ▄█████▀    ▀▀▀▀▀▀███ ███    ███   ███    ███
███       ▀███████████ ▀▀█████▄    ▄██   ███ ███    ███ ▀█████████▀
███                ███   ███▐██▄   ███   ███ ███    ███   ███
███▌        ▄█    ███   ███ ▀███▄ ███   ███ ███    ███   ███
█████▄▄██  ▄████████▀    ███   ▀█▀  ▀█████▀  ████████▀   ▄████▀
▀                                   Version 0.1.2 © JoeZhu ALL RIGHTS RESERVED
                       LICENSE  GPL-V3
             CONTACT : zhuzhouyue2005@outlook.com

lskyup --info

输出当前的配置信息

 lskyup --info
Server: https://example.com/api/v1
Token: Bearer x|xxxxxxxxxxxxxxxxxxxxxxxxxxx

lskyup --user

输出当前配置用户的信息

 lskyup --user
USER INFORMATION
User name: Username
E-mail: example@example.com
Website: https://example.com
Image Numbers: 30
Album Numbers: 0
Storage Used/Total: 55122.47 KB/51200000 KB

lskyup upload

lskyup upload --help

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 clean

清理压缩图片缓存(删除用户根目录/lskyup/Img_cache文件夹)

 lskyup clean
lskyup Copyright (C) 2023-now Joe Zhu
LICENSE GPL-V3
Clean Img_cache successfully

Change Log


v0.1.4 (2023.5.1 23:01 GMT +8)

  • 修复了一些细小的问题

v0.1.3 (2023.5.1 22:33 GMT +8)

  • 更新了README.md
  • 修复了一些细小的问题

v0.1.2 (2023.5.1 21:38 GMT +8)

  • 第一个可以用的版本

LICENSE

GPLv3+ © Zhouyue Zhu

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lskyup-0.1.5.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lskyup-0.1.5-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file lskyup-0.1.5.tar.gz.

File metadata

  • Download URL: lskyup-0.1.5.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.0

File hashes

Hashes for lskyup-0.1.5.tar.gz
Algorithm Hash digest
SHA256 fd8e101a4f0696a1c57f19def83262a0ab8dce9c2086b33e31040b2630739a80
MD5 3668a3af8b2dbddd82c6d52f2f6012f4
BLAKE2b-256 48a70d13017ae59220230a95e0bd8d982f8d9c61527d282e859b8912435529e8

See more details on using hashes here.

File details

Details for the file lskyup-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: lskyup-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.0

File hashes

Hashes for lskyup-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4858d49840a609528d9177dba0716d7833d7c6472bb7aaeaa66cbb60a9169272
MD5 242d9cbaef0346570fac0fa9d1dfc4a1
BLAKE2b-256 e22326765f63885e17be12bee1bed4a619912ee2d97559d383ebb6c02413e8f1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page