TinyOwl
中文
下载

配置教程

在 Mac 上把图片压缩后直传腾讯云 COS

许多站长和开发者选择腾讯云 COS 作为图片底座。结合腾讯云全球加速与高性价比存储,配合 Mac 本地优先的 TinyOwl 图像工作流,能在图片上传前自动完成高倍率 WebP 压缩,节省带宽与存储空间。

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

为什么要在上传腾讯云 COS 前在本地压缩?

腾讯云对象存储(Cloud Object Storage,COS)生态中提供了 数据万象 CI 的图片瘦身和转码方案,支持在访问时动态处理图片。

但对于桌面端的独立开发者、内容作者和自媒体来说,在本地完成预先压缩具备极其清晰的收益:

  1. 规避上行流量拥堵:Mac 截取的视网膜高分屏图片通常高达数兆,尤其在家庭宽带或手机热点等上行速率受限的网络环境下,原图直传会有明显的卡顿等待感。在本地先经 TinyOwl 转为 WebP Q75,体积通常缩小 80%~90%,上行传输耗时成倍减少。
  2. 降低云端存储与处理成本:腾讯云数据万象等云端处理方案是按次按量计费的;如果原图体积巨大,不仅占用昂贵的标准存储容量,持续的处理费用也会随访问量累积。
  3. 断网与纯离线可用:TinyOwl 的压缩和格式转换完全在 Mac 本机 Apple 芯片中运行,即便在无网络或离线环境中也能顺畅整理图片,待网络通畅后再统一上传。
TinyOwl 工作流编辑器,其中可添加上传步骤。
先保存 COS 上传目标,再将它加进一个可复用的压缩与上传工作流。

第一步:准备腾讯云 COS 存储桶与 CAM 凭证

与所有云服务相同,强烈反对使用腾讯云主账号 API 密钥。建议在访问管理(CAM)控制台创建权限受限的子账号。

1. 创建 COS 存储桶(Bucket)

  1. 登录 腾讯云 COS 控制台
  2. 在左侧菜单点击 存储桶列表,点击 创建存储桶
  3. 输入名称(例如 myassets)。注意:腾讯云会自动在名称后拼接你的专属 APPID,最终完整的 Bucket 名称形如 myassets-1250000000
  4. 选择所属地域(Region),例如 广州(对应地域代号为 ap-guangzhou)或 上海(对应 ap-shanghai)。
  5. 访问权限:
    • 作为公共图床或博客引用,选择 公有读私有写
  6. 点击 确定 完成创建。

2. 创建 CAM 访问密钥(SecretId / SecretKey)

  1. 访问 腾讯云 CAM 控制台 - 用户列表
  2. 点击 新建用户自定义创建 ➔ 选择 可访问资源并接收消息
  3. 填写用户名(如 tinyowl-cos-uploader),访问方式勾选 编程访问
  4. 配置权限策略:
    • 快速方案:关联策略 QcloudCOSFullAccess(对象存储全读写访问权限)。
    • 严格方案:自定义权限策略,仅授权目标 Bucket 的 PutObjectGetObjectListBucket 权限。
  5. 完成创建后,保存生成的 SecretIdSecretKey(SecretKey 仅在创建成功时展示一次)。

3. 获取地域 Endpoint

腾讯云 COS 的标准 S3/REST 访问 Endpoint 格式非常规则:

  • 上海:Region 为 ap-shanghai,Endpoint 为 https://cos.ap-shanghai.myqcloud.com
  • 广州:Region 为 ap-guangzhou,Endpoint 为 https://cos.ap-guangzhou.myqcloud.com
  • 北京:Region 为 ap-beijing,Endpoint 为 https://cos.ap-beijing.myqcloud.com

官方完整地域列表可查阅 腾讯云 COS 地域和访问域名

第二步:在 TinyOwl 中添加腾讯云 COS 上传目标

  1. 打开 TinyOwl,按快捷键 ⌘, 打开 设置
  2. 在左侧导航栏点击 上传目标,再点击右上角的 添加上传目标
  3. 在类型下拉菜单中,选择 Tencent COS
  4. 填写相关参数:
    • 名称:如 腾讯云上海 COS
    • Bucket注意必须包含 APPID 后缀,例如 myassets-1250000000
    • Region:填写地域代码,如 ap-shanghai
    • Endpoint:填写完整的 HTTPS 地址,例如 https://cos.ap-shanghai.myqcloud.com
    • Access Key ID:填入腾讯云的 SecretId
    • Secret Access Key:填入腾讯云的 SecretKey
    • Public Base URL(可选但推荐):如果存储桶为公有读,可填入存储桶的访问地址。默认地址形如 https://myassets-1250000000.cos.ap-shanghai.myqcloud.com;若配置了解析域名,填入 https://img.yourdomain.com
    • Path Prefix(可选):统一存放目录,例如 blog/upload
  5. 点击卡片底部的 测试连接
  6. 测试成功后,该目标即可用于任意工作流。

第三步:将 COS 上传加入工作流

  1. 在设置中点击 工作流
  2. 点击 添加工作流,命名为 博客配图 -> WebP -> 腾讯云COS
  3. 配置处理步骤:
    • 尺寸处理(可选):如果经常处理 4K 或双倍屏 Retina 截图,可增加最长边 1600px 预设,保持图片清晰的同时严格限制物理分辨率。
    • 压缩(必需):选择内置预设 WebP - 另存为 或自定义参数为 均衡 Q75
    • 上传(必需):选择刚刚添加的 腾讯云上海 COS,路径模板可采用 {yyyy}/{mm}/{dd},文件名策略推荐使用 timestamped(时间戳模式),防止同名冲突。
  4. 点击 启用此工作流
TinyOwl 新手引导,展示访达作为图片入口。
在访达选中图片后用“打开方式 → TinyOwl”加入处理列表,再确认并运行当前工作流。

进阶:配置腾讯云 CDN 加速与防盗链

在实际生产部署中,直接暴露默认 COS 域名容易产生未经授权的高额盗刷。建议配置以下安全措施:

  1. 开启 CDN 加速:在 COS 控制台进入存储桶的 域名与传输管理 ➔ 自定义源站域名,绑定你的独立域名并一键开通腾讯云 CDN。
  2. 配置 Referer 防盗链:在 安全管理 ➔ 防盗链设置 中,将防盗链规则设为白名单,填入你的博客或官网域名(如 *.yourdomain.com),拦截外部站点的恶意直接引用。
  3. 更新 TinyOwl Public Base URL:将 TinyOwl 中该目标的 Public Base URL 更新为你绑定的 CDN 独立域名(例如 https://static.yourdomain.com)。

常见错误排查与解决方案

现象 / 报错根本原因解决方法
”NoSuchBucket” (404 错误)Bucket 名称未包含 APPID腾讯云 COS 的 Bucket 名称在 API 层面必须带上 -APPID(如 test-1250000000),请检查并补齐 APPID 后缀。
“AccessDenied” (403 错误)SecretId/Key 错误或 CAM 权限不足检查 CAM 子用户是否具备该 Bucket 的写入权限,并确认 SecretId 和 SecretKey 是否完整、未混入换行或空格。
连接超时或 SSL 握手失败Endpoint 格式错误确认 Endpoint 为 https://cos.<Region>.myqcloud.com 格式,切勿填错地域代号(如把 ap-guangzhou 误拼为 cn-south)。
图片上传成功但无法在浏览器查看存储桶权限为「私有读写」在 COS 控制台的基本配置中,将访问权限由「私有读写」调整为「公有读私有写」,或配合腾讯云 CDN 鉴权访问。
复制出的链接无法点击或格式错乱Public Base URL 填写了尾部斜杠检查 TinyOwl 设置中的 Public Base URL,确保格式形如 https://cdn.example.com(末尾不包含 /)。

借助 TinyOwl 的原生 ARM64 Rust 引擎,把高负荷的图像重采样与 WebP 编码留在本地,将极小体积的文件精准同步到腾讯云 COS,打造出极速且经济的高效工作流。