Halo 附件上传助手

Halo 附件上传助手

_

背景

每次将图片上传至 Halo 的附件时,都需要预先将文件名重命名为“年-月-日-四位字符”的格式。如果图片体积过大,还需额外进行压缩处理。图片数量较少时,这些步骤尚可接受;然而一旦图片数量增多,反复执行这些操作便显得尤为繁琐。为此,我专门编写了一个页面来简化这项工作。

特性

  • 多种认证方式 - 支持 PAT (Personal Access Token) 和 Basic Auth (用户名密码)两种认证方式

  • 批量上传 - 支持拖拽上传、多文件批量上传

  • 图片压缩 - 上传前自动压缩图片,可配置压缩质量、最大宽高

  • 格式转换 - 支持将图片转换为 WebP 格式,减小文件体积

  • 文件重命名 - 支持多种重命名模板(UUID、时间戳、随机字符等)

  • 存储策略管理 - 支持选择存储策略和分组,可快速创建新的策略和分组

  • 安全存储 - 认证信息本地加密存储,支持会话级和持久化存储

技术栈

使用纯前端技术栈,不涉及第三方信息交换。

  • 前端框架: Vue 3 + TypeScript

  • 构建工具: Vite

  • 状态管理: Pinia

  • UI 框架: Tailwind CSS + DaisyUI

  • HTTP 客户端: Axios

  • 图标: Iconify

界面

使用说明

配置站点连接

首次使用需要配置 Halo 站点连接信息:

  1. 点击「配置连接」按钮

  2. 输入站点地址(如 https://your-halo-site.com

  3. 选择认证方式:

    • PAT 认证:使用 Halo 后台生成的个人访问令牌

    • Basic Auth:使用用户名和密码

  4. 点击「测试连接」验证配置

  5. 勾选「记住认证信息」可保存配置到本地

选择存储策略和分组

  • 存储策略:选择文件上传的目标存储策略

  • 分组:选择文件所属的分组(可选)

添加文件

支持以下方式添加文件:

  • 点击上传区域选择文件

  • 拖拽文件到上传区域

  • 支持多选

配置处理选项

文件重命名

支持以下重命名模板变量:

变量

说明

示例

${origin-filename}

原始文件名

image

${uuid-with-dash}

UUID(带连字符)

550e8400-e29b-41d4-a716-446655440000

${uuid-no-dash}

UUID(无连字符)

550e8400e29b41d4a716446655440000

${timestamp-sec}

秒级时间戳

1703001600

${timestamp-ms}

毫秒级时间戳

1703001600000

${year}

年份

2024

${month}

月份

12

${day}

日期

20

${hour}

小时

10

${minute}

分钟

30

${second}

45

${random-alphabetic:X}

X 位随机字母

abc

${random-num:X}

X 位随机数字

123

${random-alphanumeric:X}

X 位随机字母数字

a1b2

图片格式转换

  • 开启后将图片转换为 WebP 格式

  • 可配置转换质量(1-100)

  • 可配置最大并发数

图片压缩

  • 开启后自动压缩图片

  • 可配置压缩质量(1-100)

  • 可配置最大宽高限制

  • 可选择是否保留原始格式

开始上传

点击「开始上传」按钮,等待上传完成。上传过程中会显示进度条和状态信息。

Halo 扩展数据管理工具 2026-03-06

评论区