Upgit 可以快捷地将文件上传到 Github 仓库并得到其直链。简洁跨平台,不常驻内存。
可作为 Typora 的自定义上传器使用。
太长不看:本程序用于快速上传。配合 AHK 可以帮助你一键完成截图、上传、复制链接的操作。
- 支持多平台,包括 Linux、Windows 和 macOS
- 支持多种上传器,目前包括 Github 和 SMMS
- 不限制文件类型
- 支持从剪贴板上传
- 自定义自动重命名规则(包括路径)
- 可通过替换规则实现CDN加速
- 可通过环境变量配置
- 将 URL 输出到标准输出/剪贴板,支持 Markdown 格式
- Github
- Gitee
- 腾讯云 COS
- 七牛云 Kodo
- 又拍云
- Hello
- Niupic
- SM.MS
- Imgur
- ImgUrl.org
- CatBox
- LSkyPro
- Chevereto
- ImgBB
- Cloudinary
- EasyImage
查看更多: ./upgit ext ls
从Release 下载.
如果不知道下载哪一个:
- 对于大多数 Windows用户,请选择
upgit_win_amd64.exe
- 对于大多数 macOS用户,请选择
upgit_macOS_arm64
下载后将其重命名为upgit
(对于Windows用户,upgit.exe
),保存到某处。若要从任何地方访问它,请将其目录添加到 PATH
环境变量中。
提醒: 此程序不会自动检查更新。如果你关心本程序的新功能,可以点右上角的 ⭐star 收藏。
在程序的同一目录创建 config.toml
文件,内容按照此示例配置文件 填写即可.
比如上传 logo.png
并自动使用重命名规则,执行:
./upgit logo.png
# for 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”参数
Upload anything to github repo or other remote storages and then get its link.
For more information: https://github.com/pluveto/upgit
Usage: upgit [--target-dir TARGET-DIR] [--verbose] [--size-limit SIZE-LIMIT] [--wait] [--config-file CONFIG-FILE] [--clean] [--raw] [--no-log] [--uploader UPLOADER] [--output-type OUTPUT-TYPE] [--output-format OUTPUT-FORMAT] [--application-path APPLICATION-PATH] FILE [FILE ...]
Positional arguments:
FILE local file path to upload. :clipboard for uploading clipboard image
Options:
--target-dir TARGET-DIR, -t TARGET-DIR
upload file with original name to given directory. if not set, will use renaming rules
--verbose, -V when set, output more details to help developers
--size-limit SIZE-LIMIT, -s SIZE-LIMIT
in bytes. overwrite default size limit (5MiB). 0 means no limit
--wait, -w when set, not exit after upload, util user press any key
--config-file CONFIG-FILE, -c CONFIG-FILE
when set, will use specific config file
--clean, -C when set, remove local file after upload
--raw, -r when set, output non-replaced raw url
--no-log, -n when set, disable logging
--uploader UPLOADER, -u UPLOADER
uploader to use. if not set, will follow config
--output-type OUTPUT-TYPE, -o OUTPUT-TYPE
output type, supports stdout, clipboard [default: stdout]
--output-format OUTPUT-FORMAT, -f OUTPUT-FORMAT
output format, supports url, markdown and your customs [default: url]
--application-path APPLICATION-PATH
custom application path, which determines config file path and extensions dir path. current binary dir by default
--help, -h display this help and exit
Manage extensions:
upgit ext ACTION
Actions:
ls list all downloadable extensions
my list all local extensions
add smms.jsonc install SMMS uploader
remove smms.jsonc remove SMMS uploader
假设 upgit 程序保存在
“C:\repo\upgit\upgit.exe
。
选择 文件 > 首选项
转到 Image。选择自定义命令作为图像上传器。
在命令文本框中输入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 来获取剪贴板文件列表。当你第一次使用这个功能时,它将自动下载。
使用参数 --output-type clipboard
:
./upgit logo.png --output-type clipboard
# or .\upgit.exe :clipboard -o clipboard
增加参数 --output-format markdown
:
./upgit logo.png --output-type clipboard --output-format markdown
# or .\upgit.exe :clipboard -o clipboard -f markdown
然后会在剪贴板上得到一个 Markdown 图片链接,比如:
![logo.png](!https://cdn.jsdelivr.net/gh/pluveto/upgit/logo.png)
对于 Windows 用户:
-
安装AHK
-
创建这个脚本
upload_clipboard.ahk
并运行:; Press Ctrl + F9 to upload clipboard image ^F9:: RunWait, "upgit.exe" :clipboard --output-type clipboard --output-format markdown return
-
然后按 WinShiftS 截图,按 CtrlF9上传并将其链接复制到剪贴板
键 | 说明 |
---|---|
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} |
-- 原始文件名,如 logo (不含扩展名) |
-- {fname_hash} |
-- {fname} 的 MD5 散列值 |
-- {fname_hash_4} |
-- {fname} 的 MD5 散列值,取前 4 位 |
-- {fname_hash_8} |
-- {fname} 的 MD5 散列值,取前 8 位 |
这是一个简单的示例配置文件:
rename = "{year}/{month}/upgit_{year}{month}{day}_{unix_ts}{ext}"
[uploaders.github]
pat = "ghp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
repo = "repo-name"
username = "username"
可以通过如下方式自定义输出格式:
[output_formats]
"bbcode" = "[img]{url}[/img]"
"html" = '<img src="{url}" />'
"markdown-simple" = "![]({url})"
使用方法示例:
upgit :clipboard -o clipboard -f bbcode