upgit

upgit

多平台文件上传工具 支持自定义规则和多种云存储

upgit是一款跨平台的文件上传工具,支持将文件上传到GitHub、S3兼容存储、Gitee等多种云存储服务。它提供自定义重命名规则、CDN替换和多种输出格式,可上传任何文件类型包括剪贴板图片。upgit集成了VSCode扩展,支持环境变量配置,适合与Markdown编辑器配合使用,提高文档编写效率。该工具支持Windows、Linux和macOS系统,为用户提供了便捷的文件管理和分享解决方案。

upgit上传工具GitHub图片上传TyporaGithub开源项目

upgit

<img align="right" src="https://img.shields.io/github/workflow/status/pluveto/upgit/Release?logo=go&style=flat-square" />

<img src="https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white" /> <img src="https://img.shields.io/badge/Ubuntu-E95420?style=for-the-badge&logo=ubuntu&logoColor=white" /> <img src="https://img.shields.io/badge/mac%20os-000000?style=for-the-badge&logo=apple&logoColor=F0F0F0" />

语言: 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"

选择 文件 > 偏好设置...

image-20220128204217802

转到 图像。选择 自定义命令 作为您的 图像上传器

命令 文本框中输入 upgit 程序位置。

您可以点击 测试上传器 按钮确保它正常工作。

image-20220128204418723

现在尽情享用吧!

上传剪贴板图像

使用 :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 用户:

  1. 安装 AHK

  2. 创建并运行此脚本 upload_clipboard.ahk

    ; 按 Ctrl + F9 上传剪贴板图片 ^F9:: RunWait, "upgit.exe" :clipboard --output-type clipboard --output-format markdown return
  3. 然后按 <kbd>Win</kbd><kbd>Shift</kbd><kbd>S</kbd> 截图。按 <kbd>Ctrl</kbd><kbd>F9</kbd> 上传并获取链接到剪贴板!

兼容 Snipaste

(仅 Windows,从 v0.1.5 版本起)我们最近添加了对 Snipaste 位图格式的支持。只需复制截图并上传即可!

配置说明

描述
username你的 Github 用户名,如 pluveto
repo你的 Github 仓库名,如 upgit
branch用于保存文件的分支,如 mastermain
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
  • 上传剪贴板图片
  • 将上传的图片链接保存到剪贴板
  • 从链接上传
  • 忽略已上传的文件(链接输入)
  • 上传历史

编辑推荐精选

博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

下拉加载更多