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
  • 上传剪贴板图片
  • 将上传的图片链接保存到剪贴板
  • 从链接上传
  • 忽略已上传的文件(链接输入)
  • 上传历史

编辑推荐精选

Trae

Trae

字节跳动发布的AI编程神器IDE

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

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

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

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

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

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

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

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

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多