TinyOwl
中文
下载

配置教程

在 Mac 上把图片压缩后直传阿里云 OSS

很多国内开发者和网站管理员习惯在云端开通图片处理规则,但这样不仅原图上传慢、消耗公网流量,云端图片处理还按调用次数持续计费。本文介绍如何在 Mac 本地使用 TinyOwl 预先完成尺寸与 WebP 压缩,并自动直传阿里云 OSS。

版本说明:本文基于 TinyOwl v0.7.2(macOS 12+,仅支持 Apple 芯片 Mac)撰写。

为什么选择「本地先压缩」而不是「云端后处理」?

阿里云 OSS 官方文档提供了功能完备的 数据处理 / 图片处理 (Image Processing) 功能,可以通过在图片 URL 后面拼接 ?x-oss-process=image/resize... 动态生成缩略图与 WebP。

但这在桌面独立创作和日常配图场景中存在明显的实际代价:

  1. 上传耗时翻倍:未经压缩的 Retina 截屏通常在 2 MB 到 8 MB 之间。直接上传原图意味着每次都要等待较长的上行带宽传输;而在本地经过 TinyOwl 转成 WebP Q75 后,体积通常只有 200 KB 到 500 KB,上传几乎是瞬间完成。
  2. 云端持续计费:OSS 的图片处理服务不仅按量计收请求次数费,还可能因为未合理配置 CDN 缓存导致重复处理产生费用。
  3. 本地原图私密可控:未发布的内部系统截图或敏感设计素材,先在本地完成脱敏或格式转换,避免未经确认的高分辨率原始资产直接暴露在公网 Bucket 中。

通过 TinyOwl,你可以在 Mac 本机榨干 M 系列芯片性能完成压缩与格式转换,仅把最终生产级图片送入阿里云 OSS。

TinyOwl 工作流编辑器,可将压缩与上传步骤组合为一次运行。
先在上传目标中保存凭证,再把该目标加入需要的工作流。

第一步:准备阿里云 OSS Bucket 与 RAM 子账号凭证

为了账户安全,强烈建议不要使用阿里云主账号 AccessKey,而是通过 RAM 控制台为 TinyOwl 创建专门的子账号并赋予最小必要权限。

1. 创建 OSS Bucket

  1. 登录 阿里云 OSS 管理控制台
  2. 在左侧菜单点击 Bucket 列表,点击 创建 Bucket
  3. 输入 Bucket 名称(例如 my-static-assets,全局唯一,仅支持小写字母、数字和连字符)。
  4. 选择地域(Region),例如 华东1(杭州)(对应 Region ID 为 cn-hangzhou)。
  5. 读写权限:
    • 如果用作博客、网站或公开文档图床,建议选择 公共读(私有写入,公网只读)。
    • 如果需要严格鉴权,可选择私有,后续配合自定义鉴权 URL 使用。
  6. 点击 确定 完成创建。

2. 创建 RAM 子用户并授予 OSS 写入权限

  1. 访问 RAM 控制台 - 用户页面
  2. 点击 创建用户,填写登录名称(如 tinyowl-uploader),勾选 OpenAPI 调用访问
  3. 创建完成后,页面会显示该子用户的 AccessKey IDAccessKey Secret。请立刻保存好这两段字符串(Secret 仅展示一次)。
  4. 在用户列表中找到刚创建的用户,点击右侧的 添加权限
  5. 权限策略选择:
    • 快速方案:选择系统策略 AliyunOSSFullAccess(管理对象存储服务)。
    • 严格最小权限方案:自定义一条权限策略,仅授权对指定 Bucket 的 oss:PutObjectoss:GetObjectoss:ListObjects 操作。

3. 获取地域公网 Endpoint

阿里云 OSS 访问域名格式非常统一。以华东1(杭州)为例:

  • Region IDcn-hangzhou
  • 公网 Endpointhttps://oss-cn-hangzhou.aliyuncs.com

如果你的 Bucket 位于华北2(北京),则 Region ID 为 cn-beijing,Endpoint 为 https://oss-cn-beijing.aliyuncs.com。完整列表可参考阿里云官方 OSS访问域名和数据中心

第二步:在 TinyOwl 中配置阿里云 OSS

  1. 打开 TinyOwl,按 ⌘, 进入 设置
  2. 在左侧切换至 上传目标,点击右上角 添加上传目标
  3. 在目标类型下拉菜单中,选择 Alibaba OSS
  4. 按实际信息填写字段:
    • 名称:填写直观备注,如 阿里云杭州 OSS
    • Bucket:填写 Bucket 名称(如 my-static-assets)。
    • Region:填写地域缩写(如 cn-hangzhou)。
    • Endpoint:填写完整 HTTPS 地址,例如 https://oss-cn-hangzhou.aliyuncs.com
    • Access Key ID:填入 RAM 子用户的 AccessKey ID。
    • Secret Access Key:填入 RAM 子用户的 AccessKey Secret。
    • Public Base URL(可选但推荐):如果 Bucket 允许公开访问,填入公开基础 URL。如果使用阿里云默认域名,格式形如 https://my-static-assets.oss-cn-hangzhou.aliyuncs.com;如果绑定了自定义加速域名,可填如 https://cdn.example.com(注意末尾不带斜杠)。
    • Path Prefix(可选):如果希望所有图片统一上传到子目录下,可填写如 blog/images
  5. 点击卡片下方的 测试连接
  6. 当状态提示测试通过时,说明凭据与网络连接完全正常。

第三步:将 OSS 绑定到工作流并开始使用

  1. 在设置中点击 工作流
  2. 点击 添加工作流(或编辑现有工作流),命名为 博客配图 -> WebP -> 阿里云OSS
  3. 检查三步流程:
    • 尺寸处理(可选):添加最长边 1600px 规则,自动规避超大屏幕原始截图像素溢出。
    • 压缩(必需):选择内置预设 WebP - 另存为 或自定义的 均衡 Q75
    • 上传(必需):点击添加上传步骤,选择刚配置的 阿里云杭州 OSS,路径模板可设为 {yyyy}/{mm}/{dd},文件名策略推荐选择 timestamped(时间戳)或 random(随机字符串),避免同名文件在云端意外覆盖。
  4. 点击 启用此工作流,将其设为全局生效的工作流。
TinyOwl 新手引导,展示菜单栏作为图片入口。
图片可从菜单栏面板开始处理;上传结果会保留在 TinyOwl 的结果列表中。

进阶:配置自定义域名与 CDN 加速

直接使用阿里云默认的 *.aliyuncs.com 域名虽然方便,但在部分社交平台和微信环境中可能会受到防盗链或域名拦截限制。推荐绑定独立自定义域名:

  1. 在 OSS 控制台的目标 Bucket 页面中,选择 Bucket 配置 ➔ 域名管理
  2. 点击 绑定域名,输入你拥有的二级域名(例如 img.yourdomain.com)。
  3. 如果开启了阿里云 CDN 加速,按照向导配置 CNAME 解析和 HTTPS 免费证书。
  4. 返回 TinyOwl 设置,把该上传目标的 Public Base URL 修改为 https://img.yourdomain.com
  5. 之后每次通过 TinyOwl 处理并上传图片,复制出来的链接都会直接使用你的品牌独立域名。

常见错误与排错清单

现象与提示可能原因解决办法
测试连接报 403 Forbidden / AccessDeniedAccessKey 填错或权限策略不足检查 RAM 子账号是否已被添加 AliyunOSSFullAccess 权限;确认 AccessKey 复制时没有多余的前后空格。
测试连接报 NoSuchBucket (404)Bucket 名称输入有误或 Region 不匹配检查 Bucket 名称大小写是否一致;确认 Endpoint 中的地域代号与创建 Bucket 时的地域完全对应。
测试连接一直处于加载或网络超时Endpoint 格式错误确保 Endpoint 包含 https:// 前缀,且不能带 bucket 前缀(例如应为 https://oss-cn-hangzhou.aliyuncs.com,而非 https://bucket.oss...)。
上传成功后无法复制链接未填写 Public Base URL在 TinyOwl 上传目标设置中补全 Public Base URL,TinyOwl 才能把生成的对象路径拼接成完整可点击的 URL。
点击复制的链接无法查看,提示 AccessDeniedBucket 读写权限是「私有」如需公网直接访问,需在 OSS 控制台将 Bucket 读写权限修改为「公共读」,或为其配置合规的 CDN 加速域名。

将本地优先的高速压缩与稳定的阿里云 OSS 结合,既守住了 Mac 桌面的极速流畅与隐私安全,又极大简化了向云端交付轻量图片的操作链路。