Skills 实战:Unsplash → COS 自动化配图

前置条件 :本机已安装 OpenCode;已开通腾讯云 COS 并建好存储桶;本机可用 npx(用于启动 cos-mcp)。

最近有一项比较重复的工作:找素材图片并上传到腾讯云 COS。图片需求量大,且会持续一段时间,所以想优化工作流。

打算在 OpenCode 里写一个 Skill:自动找图片链接、下载到本地、上传到 COS,最后把可访问的图片链接写回 Markdown。

MCP

腾讯官方 MCP:cos-mcp,用于上传图片。接入方式为本地子进程 stdio (配置里对应 type: "local"),示例命令如下。

路径:~/.config/opencode/opencode.json

json 复制代码
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cos-mcp": {
      "type": "local",
      "command": ["npx", "-y", "cos-mcp", "--Region=<地区>", "--Bucket=<bucket>", "--SecretId=<secretId>", "--SecretKey=<secretKey>", "--DatasetName=yourDatasetname"],
      "enabled": true
    }
  }
}

将 region、bucket、secretId、secretKey 等换成你自己的值。请勿把真实密钥写进会被提交的仓库或公开发布的文章里。

如何拿到 COS 相关配置

以下假设你已经创建过对象存储桶。

1. 桶与地域、访问域名

打开 COS 控制台 - 存储桶列表。

记下 region 、bucket ,以及控制台里显示的访问域名(形如 https://xxx-xxx.cos.ap-xxx.myqcloud.com)。后续上传路径与域名组合即可得到图片 URL;把桶名、地域、域名等信息提供给 Agent,由 Skill / MCP 侧处理即可,无需在文章里手工推导整条 URL。

2. secretId、secretKey

在 访问管理 - 访问密钥 创建并查看 secretId 、secretKey 。注意 secretKey 仅在创建时完整可见,其他时间不可见;若遗失只能删除该密钥后重新创建。

图片源

图源使用 Unsplash:注册账号 → 创建 Application → 拿到 Access Key。

1. 注册账号(已有账号可跳过)

2. 创建 Application

登录后打开 新建 Application。

填写 Application Name 、Description,例如:

复制代码
Application Name:Photo Gallery App
Description:A web application that helps users discover and curate high-quality images from Unsplash. The app allows users to search for images by keywords, create collections, and download their favorite photos for personal and commercial projects.

选择 Create application:

3. 获取 Access Key

4. 验证 Access Key

使用 curl 测试:

curl 复制代码
curl -s "https://api.unsplash.com/search/photos?query=ai&client_id={Access Key}"

若返回类似下图,一般表示 Access Key 配置有误或权限异常:

Skills 编写

完整 SKILL.md 示例与说明可参考:codecopy 原文。落地时通常需要做到:

  • 用 Unsplash 搜索接口按关键词取图,并控制条数;
  • 下载到本地临时路径后,通过 cos-mcp 上传到指定前缀/目录;
  • 用控制台提供的域名(或自定义域名)生成最终图片 URL,写回目标 Markdown。

把 codecopy 里面的 Skill 里占位内容换成你自己的:域名 (文中写「换成自己的域名」需要进行替换);Access Key(与 Unsplash 控制台一致)。

bash 复制代码
curl -s "https://api.unsplash.com/search/photos?query={query}&client_id={Access key}&per_page={count}"

在 OpenCode 中新建 Skill,按向导写入后,路径一般为 ~/.config/opencode/skills/<名称>/SKILL.md。

创建时可用的 prompt 示例:

复制代码
帮我创建 skills 具体要求如下:{这里写上面的 skill.md 的完整内容}

跑通后,目标 Markdown 里应出现可浏览器打开的 COS 图片链接。若上传失败,先核对桶权限、地域与密钥;若搜图失败或返回异常,检查 Unsplash Access Key 与接口配额(例如 429)。

测试

这里我们使用 OpenCode 进行测试,测试的 prompt 如下:

复制代码
/download-image-from-unsplash 帮我找到鱼皮相关的图片

注意:这个 /download-image-from-unsplash 每一个人可能不一样,需要看看自己的叫什么

结果如下:

生成的 md :

相关推荐
ESDWAN5 小时前
SD-WAN 企业选型与落地指南:从链路测试到网络架构设计
运维·网络·架构
啊哈一半醒5 小时前
Docker 底层知识:从 Namespace 到 UnionFS
运维·docker·容器
_smart_boy__5 小时前
I.MX6U开发板Uboot无法ping Ubuntu问题解决方案(二)
linux·运维·ubuntu
软件开发技术深度爱好者5 小时前
中学生学习工具:多学科自学启导者(轻量版)实现
学习·ai·技术实践
DianSan_ERP6 小时前
多平台订单自动下载与回传的技术实现:从消息推送到状态闭环引言
java·linux·服务器·前端·网络·架构·自动化
~光~~6 小时前
【嵌入式Linux学习】GFP_NOIO / GFP_NOFS(Linux 内核 gfp 分配标志)
linux·运维·学习
涵美女程序猿6 小时前
ChatCut online 剪负载均衡健康检查演练录屏:后端池、探针路径与摘除阈值怎样对应
运维·程序人生·电脑·负载均衡
分布式存储与RustFS6 小时前
升级 RustFS 二进制不停机:一条一条换,留一条退路
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
吴声子夜歌6 小时前
Nginx应用与运维——Nginx核心配置指令(一)
运维·nginx
android阿杜6 小时前
Ubuntu 26.04 LTS 系统每次重启后屏幕亮度都会增加一点
linux·运维·ubuntu