Skip to main content

上传图片到图床

Project description

English

命令行管理太麻烦?试试up2b-gui吧!

up2b

一个能在终端中将图片上传到图床的包。

支持linux、macOS和windows。

特点

支持以下图床自动上传:

  • sm.ms
  • imgse.com(原imgtu.com)
  • github.com
  • imgtg.com

成功上传到github后会返回jsdelivr的CDN链接,加快在中国境内对图片的访问速度。

支持jpeg/jpg和png图片的自动压缩,但仅在测试阶段,可能有些小问题,如果你不想在使用此功能时出现错误或达不到预期则不建议使用。

怎么用

安装up2b包:

pip install up2b

安装后,会多出一条up2b命令:

usage: up2b [-h] [-v] [-aac] [-aw] [--current] [--list]
                   [-c {0: 'sm.ms', 1: 'imgse.com', 2: 'github.com', 4: 'imgtg.com'} | -l USERNAME PASSWORD | -lg ACCESS_TOKEN USERNAME REPO FOLDER | --config-text-watermark X Y OPACITY TEXT FONT_PATH SIZE | -p IMAGE_PATH | -ps IMAGE_PATH [IMAGE_PATH ...]]

一个能将本地图片压缩、加水印或原图上传到图床的包

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -aac                  允许自动压缩图片。开启此项后,超过图床限制大小的图片将会自动压缩到限制大小后再上传
  -aw, --add-watermark  对要上传的图片添加文字水印
  --current             显示正在使用的图床
  --list                列出所有已配置的图床
  -c -c {0: 'sm.ms', 1: 'imgse.com', 2: 'github.com', 4: 'imgtg.com'}, --choose-site {0: 'sm.ms', 1: 'imgse.com', 2: 'github.com', 4: 'imgtg.com'}
                        选择要使用的图床
  -l USERNAME PASSWORD, --login USERNAME PASSWORD
                        保存认证信息。你需要在`-l`或`--login`后输入账名和密码
  -lg ACCESS_TOKEN USERNAME REPO FOLDER, --login-git ACCESS_TOKEN USERNAME REPO FOLDER
                        保存 git 类型图床的认证信息,如 github
  --config-text-watermark X Y OPACITY TEXT FONT_PATH SIZE
                        配置要添加的文字水印
  -p IMAGE_PATH, --image-path IMAGE_PATH
                        上传一张图片
  -ps IMAGE_PATH [IMAGE_PATH ...], --images-path IMAGE_PATH [IMAGE_PATH ...]
                        上传多张图片。多张图片路径之间以空格分隔,最多能上传 10 张

1 选择图床

第一次使用时,必须先选择图床。

up2b-c参数可选值为:

  • 0
    • sm.ms
  • 1
    • imgse.com
  • 2
    • github.com
  • 4
    • imgtg.com
# 如果你想选择sm.ms
up2b -c 0

2 保存认证信息

普通图床:

git仓库本身并不算是图床,所以git仓库之外的图床都是普通图床。

使用普通图床时,用-l--login进行认证信息的配置,如:

up2b -l username password

git仓库:

此包所指的git仓库包括github

使用git仓库作为图床,需要用-lg--login-git进行认证信息的配置。

认证信息需要四个参数:

  • ACCESS_TOKEN 私密令牌
  • USERNAME 用户名
  • REPO 仓库名
  • FOLDER 想要保存在仓库里的哪个文件夹中,会自动创建不存在的文件夹

比如,我想将图片保存在image-bed仓库里的md文件夹内,输入此命令:

up2b -lg access_token username image-bed md

3 (可选) 在 typora 内填写命令

然后才能将up2b命令填到Typora里,命令里有个参数-aac为可选参数,其作用为开启自动压缩功能,如果不加此参数,上传图片时不会自动压缩,超出图床限制大小就会报错。而添加此参数,则会自动将超限图片压缩到限制图片大小或以下,保证顺利上传。

但自动压缩功能当前没有经过严谨地测试,所以不能保证不出问题,有问题请将异常的截图发在电报群里。

开启自动压缩功能:

up2b -aac -ps

不开启自动压缩功能:

up2b -ps

你也可以添加文字水印:

up2b -aw -ps

但需先配置文字水印的相关信息:

up2b --config-text-watermark -50 -50 50 'test watermark' '/home/thepoy/.local/share/fonts/simkai.ttf' 48

配置示例

自行打包

如果此项目中更新了某些特性对你来说很有用,但尚未发布新的 release,那么你可以自行打包安装。

创建虚拟环境

如果你不担心对环境中的其他包产生影响,也不介意自己的 Python 库中多一些可能永远用不到的包,则可以忽略此步。

如果你使用的环境管理工具为 pthon 内置的 venv,请自行创建环境,这里不多介绍。

conda create -n up2b-temp python=3.10
conda activate up2b-temp

安装依赖

pip install build

打包

python -m build

会在项目的根目录创建dist目录,里面就有打包好的whl文件,安装即可:

pip install -U dist/up2b-*-py3-none-any.whl

TODO

鉴于图床网站凉的速度超乎想象,所以在下个大版本中我不打算再对任何图床进行支持,而是使用配置文件的方式由用户自行添加图床,并添加检测图床可用性的功能。

以下是 v1 版本的初步功能设计。

  • 设计通用配置文件规则

    • 图床类型
      • git
      • api
      • 非api
  • 图床可用性检测及无效标记

    • 对配置文件中的图床进行可达(超时)检测
    • 对不可达(超时)的图床添加一个无效标记,并记录检测时间
    • 用户可设置检测周期,在检测周期内不会检测无效图床以节约时间
    • 用户可设置删除(软删除)无效图床配置的周期次数,当达到或超过此次数的检测周期后,将在配置文件中将此图床标记为永久失效(软删除)
    • 用户可在配置文件中删除无效标记
  • 本地网页配置

    配置文件规则复杂,为了降低用户的使用成本,为用户提供网页版可视化配置项。

    • 可配置规则
    • 可检测可用性
    • 可设置无效性检测周期
    • 可手动添加、删除无效标记

v1 版本后将不再维护 up2b-gui 项目,将可视化配置转移动网页配置中。

除以上功能外,仍需考虑的点有:

  • 技术栈的选择

    python 虽然简单,但是为了更好地支持网页配置和降低前后端维护成本,我也在考虑 node 实现。

    同时,使用图床的人中有一些普通用户,既不懂 node,也不懂 python,这种情况下需要使用可编译语言发布二进制可执行文件,所以 Go 也在考虑的范围内。当前我正在接触 rust,也不排除用 rust 实现。

  • 配置文件的类型

    当前的配置文件是 json,如果一旦规则复杂起来,json 可能就不太适合作为可编辑的配置文件了,故需在 yaml 和 toml 中作出选择。

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

up2b-0.6.0-py3-none-any.whl (36.0 kB view hashes)

Uploaded Python 3

Supported by

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