配置教程
在 Mac 上把图片压缩后直传阿里云 OSS
很多国内开发者和网站管理员习惯在云端开通图片处理规则,但这样不仅原图上传慢、消耗公网流量,云端图片处理还按调用次数持续计费。本文介绍如何在 Mac 本地使用 TinyOwl 预先完成尺寸与 WebP 压缩,并自动直传阿里云 OSS。
版本说明:本文基于 TinyOwl v0.7.2(macOS 12+,仅支持 Apple 芯片 Mac)撰写。
为什么选择「本地先压缩」而不是「云端后处理」?
阿里云 OSS 官方文档提供了功能完备的 数据处理 / 图片处理 (Image Processing) 功能,可以通过在图片 URL 后面拼接 ?x-oss-process=image/resize... 动态生成缩略图与 WebP。
但这在桌面独立创作和日常配图场景中存在明显的实际代价:
- 上传耗时翻倍:未经压缩的 Retina 截屏通常在 2 MB 到 8 MB 之间。直接上传原图意味着每次都要等待较长的上行带宽传输;而在本地经过 TinyOwl 转成 WebP Q75 后,体积通常只有 200 KB 到 500 KB,上传几乎是瞬间完成。
- 云端持续计费:OSS 的图片处理服务不仅按量计收请求次数费,还可能因为未合理配置 CDN 缓存导致重复处理产生费用。
- 本地原图私密可控:未发布的内部系统截图或敏感设计素材,先在本地完成脱敏或格式转换,避免未经确认的高分辨率原始资产直接暴露在公网 Bucket 中。
通过 TinyOwl,你可以在 Mac 本机榨干 M 系列芯片性能完成压缩与格式转换,仅把最终生产级图片送入阿里云 OSS。
第一步:准备阿里云 OSS Bucket 与 RAM 子账号凭证
为了账户安全,强烈建议不要使用阿里云主账号 AccessKey,而是通过 RAM 控制台为 TinyOwl 创建专门的子账号并赋予最小必要权限。
1. 创建 OSS Bucket
- 登录 阿里云 OSS 管理控制台。
- 在左侧菜单点击 Bucket 列表,点击 创建 Bucket。
- 输入 Bucket 名称(例如
my-static-assets,全局唯一,仅支持小写字母、数字和连字符)。 - 选择地域(Region),例如 华东1(杭州)(对应 Region ID 为
cn-hangzhou)。 - 读写权限:
- 如果用作博客、网站或公开文档图床,建议选择 公共读(私有写入,公网只读)。
- 如果需要严格鉴权,可选择私有,后续配合自定义鉴权 URL 使用。
- 点击 确定 完成创建。
2. 创建 RAM 子用户并授予 OSS 写入权限
- 访问 RAM 控制台 - 用户页面。
- 点击 创建用户,填写登录名称(如
tinyowl-uploader),勾选 OpenAPI 调用访问。 - 创建完成后,页面会显示该子用户的 AccessKey ID 和 AccessKey Secret。请立刻保存好这两段字符串(Secret 仅展示一次)。
- 在用户列表中找到刚创建的用户,点击右侧的 添加权限。
- 权限策略选择:
- 快速方案:选择系统策略
AliyunOSSFullAccess(管理对象存储服务)。 - 严格最小权限方案:自定义一条权限策略,仅授权对指定 Bucket 的
oss:PutObject、oss:GetObject和oss:ListObjects操作。
- 快速方案:选择系统策略
3. 获取地域公网 Endpoint
阿里云 OSS 访问域名格式非常统一。以华东1(杭州)为例:
- Region ID:
cn-hangzhou - 公网 Endpoint:
https://oss-cn-hangzhou.aliyuncs.com
如果你的 Bucket 位于华北2(北京),则 Region ID 为 cn-beijing,Endpoint 为 https://oss-cn-beijing.aliyuncs.com。完整列表可参考阿里云官方 OSS访问域名和数据中心。
第二步:在 TinyOwl 中配置阿里云 OSS
- 打开 TinyOwl,按
⌘,进入 设置。 - 在左侧切换至 上传目标,点击右上角 添加上传目标。
- 在目标类型下拉菜单中,选择 Alibaba OSS。
- 按实际信息填写字段:
- 名称:填写直观备注,如
阿里云杭州 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。
- 名称:填写直观备注,如
- 点击卡片下方的 测试连接。
- 当状态提示测试通过时,说明凭据与网络连接完全正常。
第三步:将 OSS 绑定到工作流并开始使用
- 在设置中点击 工作流。
- 点击 添加工作流(或编辑现有工作流),命名为
博客配图 -> WebP -> 阿里云OSS。 - 检查三步流程:
- 尺寸处理(可选):添加最长边 1600px 规则,自动规避超大屏幕原始截图像素溢出。
- 压缩(必需):选择内置预设 WebP - 另存为 或自定义的 均衡 Q75。
- 上传(必需):点击添加上传步骤,选择刚配置的
阿里云杭州 OSS,路径模板可设为{yyyy}/{mm}/{dd},文件名策略推荐选择timestamped(时间戳)或random(随机字符串),避免同名文件在云端意外覆盖。
- 点击 启用此工作流,将其设为全局生效的工作流。
进阶:配置自定义域名与 CDN 加速
直接使用阿里云默认的 *.aliyuncs.com 域名虽然方便,但在部分社交平台和微信环境中可能会受到防盗链或域名拦截限制。推荐绑定独立自定义域名:
- 在 OSS 控制台的目标 Bucket 页面中,选择 Bucket 配置 ➔ 域名管理。
- 点击 绑定域名,输入你拥有的二级域名(例如
img.yourdomain.com)。 - 如果开启了阿里云 CDN 加速,按照向导配置 CNAME 解析和 HTTPS 免费证书。
- 返回 TinyOwl 设置,把该上传目标的 Public Base URL 修改为
https://img.yourdomain.com。 - 之后每次通过 TinyOwl 处理并上传图片,复制出来的链接都会直接使用你的品牌独立域名。
常见错误与排错清单
| 现象与提示 | 可能原因 | 解决办法 |
|---|---|---|
| 测试连接报 403 Forbidden / AccessDenied | AccessKey 填错或权限策略不足 | 检查 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。 |
| 点击复制的链接无法查看,提示 AccessDenied | Bucket 读写权限是「私有」 | 如需公网直接访问,需在 OSS 控制台将 Bucket 读写权限修改为「公共读」,或为其配置合规的 CDN 加速域名。 |
将本地优先的高速压缩与稳定的阿里云 OSS 结合,既守住了 Mac 桌面的极速流畅与隐私安全,又极大简化了向云端交付轻量图片的操作链路。