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.4.tar.gz (19.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.4-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for lskyup-0.1.4.tar.gz
Algorithm Hash digest
SHA256 3483cef54be380ab4c1137b7da21cdf549cd1c6b5ac5d4cf17b00a1ab09cddfb
MD5 b3e51d97a1434fe123760ce8a9593824
BLAKE2b-256 322c10f720478d8ca08d7c48022b3f54ca56741067e5f8fddbca89c0fabbf681

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lskyup-0.1.4-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.10.4

File hashes

Hashes for lskyup-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 66b23190b18e666a9e92318aabd6e2171b8c222beefacdee695691570e1126da
MD5 cb31b6dd6842cf28319fc9d7d6576623
BLAKE2b-256 79fc054e75afdcf7c5c4d4f24c9c456fdc3a055d2c61de1d6a914b5e1a83a75e

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