语言: English / 简体中文
Upgit 是一个原生且轻量级的工具,可帮助您将任何文件上传到 Github 仓库,然后获取其原始 URL。
这对于 Typora 作为图片上传器也很有用。
特性
- 通过扩展与 VSCode 集成
- 支持 Linux、Windows 和 macOS
- 将任何文件上传到指定的远程 Github 仓库文件夹
- 从剪贴板上传
- 自定义自动重命名规则
- 通过替换规则实现 CDN
- 通过环境变量配置
- 将 URL 输出到标准输出/剪贴板,支持 Markdown 图片格式
支持的上传扩展
- Github
- S3 兼容存储
- AWS S3
- MinIO
- Cloudflare R2
- Ceph
- Backblaze
- Flexify.IO
- IBM Cloud Object Storage
- DigitalOcean Spaces
- Wasabi
- Gitee
- 腾讯云 COS
- 七牛云 Kodo
- 又拍云
- Hello
- 牛图网
- SM.MS
- Imgur
- ImgUrl.org
- CatBox
- LSkyPro
- Chevereto
- ImgBB
- Cloudinary
- EasyImage
更多:./upgit ext ls
入门
下载
从 Release 页面下载。
如果您不确定下载哪个版本:
- 对于大多数 Windows 用户,选择
upgit_win_amd64.exe
- 对于大多数 macOS 用户,选择
upgit_macos_arm64
- 如果需要权限,执行
chmod +x upgit
将其重命名为 upgit
(对于 Windows 用户,为 upgit.exe
),保存到您喜欢的位置。要从任何地方访问它,请将其目录添加到 PATH
环境变量中。
警告: 该程序不包含自动更新器。如果您需要保持更新,只需给 upgit 一个 ⭐星。
配置
在 upgit 的同一目录下创建 config.toml
,并按照这个示例配置文件填写。
使用
要使用重命名规则上传文件 logo.png
,执行:
./upgit logo.png
# 对于 Windows:.\upgit.exe logo.png
然后您将看到 logo.png
的链接。
要将文件 logo.png
上传到远程文件夹 /my_images/demo
,执行:
./upgit logo.png -t /my_images/demo
# 对于 Windows:.\upgit.exe logo.png -t /my_images/demo
有关更多帮助,请输入 -h
参数
将任何内容上传到 Github 仓库或其他远程存储,然后获取其链接。
更多信息:https://github.com/pluveto/upgit
用法:upgit [--target-dir 目标目录] [--verbose] [--size-limit 大小限制] [--wait] [--config-file 配置文件] [--clean] [--raw] [--no-log] [--uploader 上传器] [--output-type 输出类型] [--output-format 输出格式] [--application-path 应用路径] 文件 [文件 ...]
位置参数:
文件 要上传的本地文件路径。:clipboard 用于上传剪贴板图像
选项:
--target-dir 目标目录, -t 目标目录
使用原始名称将文件上传到给定目录。如果未设置,将使用重命名规则
--verbose, -V 设置时,输出更多详细信息以帮助开发人员
--size-limit 大小限制, -s 大小限制
以字节为单位。覆盖默认大小限制(5MiB)。0 表示无限制
--wait, -w 设置时,上传后不退出,直到用户按任意键
--config-file 配置文件, -c 配置文件
设置时,将使用特定的配置文件
--clean, -C 设置时,上传后删除本地文件
--raw, -r 设置时,输出未替换的原始 URL
--no-log, -n 设置时,禁用日志记录
--uploader 上传器, -u 上传器
要使用的上传器。如果未设置,将遵循配置
--output-type 输出类型, -o 输出类型
输出类型,支持 stdout、clipboard [默认:stdout]
--output-format 输出格式, -f 输出格式
输出格式,支持 url、markdown 和您的自定义格式 [默认:url]
--application-path 应用路径
自定义应用路径,决定配置文件路径和扩展目录路径。默认为当前二进制文件目录
--help, -h 显示此帮助并退出
管理扩展:
upgit ext 操作
操作:
ls 列出所有可下载的扩展
my 列出所有本地扩展
add smms.jsonc 安装 SMMS 上传器
remove smms.jsonc 删除 SMMS 上传器
在 Typora 中使用
假设您的 upgit 程序保存在
"C:\repo\upgit\upgit.exe"
。
选择 文件 > 偏好设置...
转到 图像。选择 自定义命令 作为您的 图像上传器。
在 命令 文本框中输入 upgit 程序位置。
您可以点击 测试上传器 按钮确保它正常工作。
现在尽情享用吧!
上传剪贴板图像
使用 :clipboard
占位符上传剪贴板图像。(仅支持 png 格式)
./upgit :clipboard
截图快捷键:
- 在 macOS 上,使用
Ctrl+Shift+Cmd+4
- 在 Linux/Ubuntu 上,使用
Ctrl+Shift+PrintScreen
- 在 Windows 上,使用
Shift+Win+s
上传剪贴板文件
注意: 此功能仅在 Windows 上支持。
使用 :clipboard-files
或 :clipboard-file
占位符上传剪贴板文件。两者都会上传剪贴板中的所有文件。
./upgit :clipboard-files
由于 golang 不支持剪贴板文件列表,因此 upgit 将使用 APIProxy-Win32 来获取剪贴板文件列表。当你首次使用此功能时,它会自动下载。
将 URL 保存到剪贴板
使用 --output-type clipboard
:
./upgit logo.png --output-type clipboard
# 或 .\upgit.exe :clipboard -o clipboard
复制为 Markdown 格式
添加参数 --output-format markdown
:
./upgit logo.png --output-type clipboard --output-format markdown
# 或 .\upgit.exe :clipboard -o clipboard -f markdown
然后你会在剪贴板中得到一个 Markdown 图片链接,如:
![logo.png](https://raw.githubusercontent.com/pluveto/upgit/main/!https://yellow-cdn.veclightyear.com/0a4dffa0/3dca9a22-4aab-487c-91b0-f1c89781ea2d.png)
使用 AHK 的最佳实践
对于 Windows 用户:
-
安装 AHK
-
创建并运行此脚本
upload_clipboard.ahk
:; 按 Ctrl + F9 上传剪贴板图片 ^F9:: RunWait, "upgit.exe" :clipboard --output-type clipboard --output-format markdown return
-
然后按 WinShiftS 截图。按 CtrlF9 上传并获取链接到剪贴板!
兼容 Snipaste
(仅 Windows,从 v0.1.5 版本起)我们最近添加了对 Snipaste 位图格式的支持。只需复制截图并上传即可!
配置说明
键 | 描述 |
---|---|
username | 你的 Github 用户名,如 pluveto |
repo | 你的 Github 仓库名,如 upgit |
branch | 用于保存文件的分支,如 master 或 main |
pat | 个人访问令牌。访问 GitHub 文档 了解更多信息 |
rename | 重命名规则。路径分隔符 / 将创建不存在的目录。支持: |
-- {year} | -- 年份,如 2006 |
-- {month} | -- 月份,如 01 |
-- {day} | -- 日期,如 02 |
-- {hour} | -- 当前时间的小时 |
-- {minute} | -- 当前时间的分钟 |
-- {second} | -- 当前时间的秒 |
-- {unix_ts} | -- 秒级 Unix 时间戳。如 1643373370 |
-- {unix_tsms} | -- 毫秒级 Unix 时间戳。如 1644212979622 |
-- {ext} | -- 扩展名,如 .png ,当原文件无扩展名时为空 |
-- {fname} | -- 原文件基本名,如 demo (不含扩展名) |
-- {fname_hash} | -- {fname} 的 MD5 哈希值(十六进制) |
-- {fname_hash4} | -- {fname} 的 MD5 哈希值(十六进制)的前 4 位 |
-- {fname_hash8} | -- {fname} 的 MD5 哈希值(十六进制)的前 8 位 |
这是一个最简单的配置文件示例:
rename = "{year}/{month}/upgit_{year}{month}{day}_{unix_ts}{ext}"
[uploaders.github]
pat = "ghp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
repo = "repo-name"
username = "username"
通过环境变量配置
UPGIT_TOKEN
UPGIT_RENAME
UPGIT_USERNAME
UPGIT_REPO
UPGIT_BRANCH
自定义输出格式
按以下方式:
[output_formats]
"bbcode" = "[img]{url}[/img]"
"html" = '<img src="https://raw.githubusercontent.com/pluveto/upgit/main/{url}" />'
"markdown-simple" = "![](https://raw.githubusercontent.com/pluveto/upgit/main/{url})"
占位符:
{url}
: 图片的 URL{fname}
: 原文件基本名{url_fname}
: URL 中的文件基本名
使用示例:
# 上传剪贴板内容并将链接以 bbcode 格式保存到剪贴板
upgit :clipboard -o clipboard -f bbcode
待办事项
- 上传到指定文件夹
- 上传并获取未被替换的原始 URL
- 上传剪贴板图片
- 将上传的图片链接保存到剪贴板
- 从链接上传
- 忽略已上传的文件(链接输入)
- 上传历史