工作流
在 Mac 上搭建 S3 兼容图床图片工作流
不少图床或自建对象存储都提供 S3 兼容接口,但配置页面往往只给一串 endpoint 和密钥。TinyOwl 的通用 S3 兼容目标把这些连接信息和本地压缩放进同一条流程里;真正需要留意的是 endpoint、请求风格和公开访问地址各自负责什么。
本文由 AI 辅助梳理结构;界面与产品步骤已由 TinyOwl 团队在 Apple 芯片 Mac 上以 TinyOwl v0.7.6 核对;各存储服务的具体参数请以其官方文档为准。
版本说明:本文按 TinyOwl v0.7.6 核对;适用于 macOS 12 及以上的 Apple 芯片 Mac。
什么时候该选「S3-Compatible」?
如果你用的是支持 S3 API 的图床、私有对象存储或自建服务,但它不在 TinyOwl 的专用预设里,就可以选 S3-Compatible。它不是新的图床服务,而是把你已有存储的 endpoint、bucket 和凭证接入 TinyOwl。
已经在用 Cloudflare R2、阿里云 OSS、腾讯云 COS、AWS S3 或 MinIO 时,优先选对应预设。专用预设会处理部分厂商默认值;通用预设则把需要确认的字段直接展示出来。
整个处理顺序很简单:
需要时先缩放 → 在 Mac 本地压缩 → 上传到自己的 S3 兼容 bucket
TinyOwl 不会替你创建 bucket、开公网读权限或绑定域名。这些仍由你的存储服务控制台负责。
配置前先从服务商那里拿到这些信息
不要从图床首页猜参数。打开服务商的 S3 API 文档或控制台,把下面几项逐一记下:
| TinyOwl 字段 | 应填什么 | 容易填错的地方 |
|---|---|---|
| Bucket | 接收图片的存储桶名称。 | 把访问域名当成 bucket 名。 |
| Endpoint | S3 API 的主机名,可带端口。 | 误填管理后台地址或 CDN 域名。 |
| Region | 服务商要求参与 S3 请求签名的 region。 | 沿用默认 us-east-1,但服务商实际要求别的值。 |
| Access Key ID / Secret Access Key | 有该 bucket 写入权限的一对访问密钥。 | 用了网页登录密码,或权限只读的 Key。 |
| Public Base URL | 已经能公开访问图片的 URL 前缀,可不填。 | 以为填了它就自动开放 bucket。 |
| Force Path Style | 控制请求中 bucket 的组织方式。 | 没看服务商文档就关掉或打开。 |
若你在本机使用 MinIO,endpoint 可能类似 http://127.0.0.1:9000;托管服务一般会提供 HTTPS endpoint。MinIO 的 macOS 文档 说明了本地服务与访问密钥的准备方式,但示例地址不能直接套到你的部署上。
在 TinyOwl 中配置上传目标
- 打开 设置,进入 上传目标。
- 点击 新增上传目标,选择 S3-Compatible。
- 取一个好认的名字,例如「博客配图」或「论坛图床」。
- 填入 bucket、endpoint、region 和访问密钥。
- 只有在你已经有可访问的图片域名时,才填写 Public Base URL。
- 服务商文档特别说明请求风格时,再展开 高级选项。许多 S3 兼容服务需要开启 Force Path Style;要求 virtual-hosted-style 的服务则应关闭它。
- 点击 测试连接,通过后再把它加入日常工作流。
「测试连接」的意义是确认 TinyOwl 能用这组凭证访问 endpoint 与 bucket。若失败,先回到 endpoint、region、密钥权限和 path style 四项排查,不要直接用一批正式图片碰运气。
把它接入日常图片工作流
连接正常后,进入 设置 → 工作流。一条工作流可以依次包含:
- 尺寸处理(可选):论坛、文档或博客有固定最大边时再加。
- 压缩(必需):选择合适的本地压缩预设和输出格式。
- 上传:选择刚才配置的 S3 兼容目标,并设置文件名策略与上传路径。
路径模板从 {yyyy}/{mm}/{dd} 开始通常足够:它能按日期归档,也不会把私人项目名写进每个对象 key。若同名截图会反复上传,文件名策略改为时间戳或随机文本,避免覆盖旧图。
想确认字段与对象 key 的组合顺序,可查 上传目标配置指南。如果你的最终目标是写博客或文档,可继续看 Mac 博客配图工作流:从截图到 Markdown;它把这个上传目标放进真实的写作步骤里。
上传成功,不代表图片已经可以外链
这是图床工作流最常见的误会:上传成功只说明对象进入了 bucket,并不说明浏览器可以读取它。
Public Base URL 只负责让 TinyOwl 组合出便于复制的链接。它不会创建 DNS、开启 CDN,也不会改变 bucket 权限。只有你已经在存储服务中配置了公开访问、绑定域名,或采用其他明确的分发方式后,才应该把对应 URL 填进来。
如果复制出来的地址是 403 或 404,先检查服务商侧的公开访问规则、域名状态和实际对象 key。以 Cloudflare R2 为例,可参考 在 Mac 上把图片压缩后直传 Cloudflare R2;其中的自定义域名步骤只适用于 R2,不能当成所有 S3 兼容服务的通用做法。
首次测试时怎么排查
| 现象 | 优先检查 |
|---|---|
| 测试连接立刻失败 | endpoint 是否真的是 S3 API 地址,而非控制台或图片访问域名。 |
403 / Access Denied | Key 是否有该 bucket 的写入权限,复制时是否混进空格。 |
| 签名或 region 报错 | 使用服务商文档中的准确 region,并按文档调整 path style。 |
| 上传成功却没有好用的复制链接 | 先配置一个已能访问的 Public Base URL;它不会替你开权限。 |
链接打开后是 404 | 对照工作流路径模板、文件名策略与控制台里真正的对象 key。 |
建议先用一张不敏感的样图和一个专门的测试目录:上传后在控制台确认对象 key,再用无痕窗口打开公开链接。这样能把「连接鉴权」「对象写入」「公开访问」三个问题分开确认,排错会快得多。