mcpField
C
cloudinary-upload

cloudinary-upload

github.com/mnhkahn云与 DevOps096 次安装3 天前更新
代码仓库

关于 cloudinary-upload

cloudinary-upload 使用官方 `cld` 命令行工具将文件上传到 Cloudinary,支持单文件和扁平目录上传。默认将图片转为 WebP,其他文件保持原样。

主要功能

  1. 01通过 `cld` 上传文件
  2. 02将目录内容上传至单一文件夹
  3. 03默认将图片转为 WebP
  4. 04可保留图片原格式
  5. 05覆盖同名 public_id

适用场景

  1. 01将图片上传到 Cloudinary 文件夹
  2. 02上传博客图片目录
  3. 03上传时保留原始格式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mnhkahn/cyeam-cli --skill cloudinary-upload

安装后在 Claude Code 中输入/cloudinary-upload确认已加载。

附带文件scripts/upload-dir.shscripts/upload.sh

详细介绍

Cloudinary 上传(官方 CLI)

使用官方 Cloudinary CLI(cld)复现 /admin/upload 流程(参见 controllers/admin_controller.go 和 util/file_util.go)。图片会在存储时转换为 webp,并上传到目标文件夹(采用扁平结构,不保留目录结构)。

前置条件

  1. 如果尚未安装,首次使用时会自动安装 官方 CLI(cld)(通过 pip3 install --user cloudinary-cli)。
  2. 通过 CLOUDINARY_URL 提供凭据(不要硬编码密钥):
    export CLOUDINARY_URL=cloudinary://<api_key>:<api_secret>@<cloud_name>
    
    本项目的 cloud name 为 cyeam。从 controllers/admin_controller.go 中获取 key/secret,或向用户询问,然后在运行前导出上述 URL。 使用 cld config 验证(应显示 cyeam cloud)。

上传单个 / 多个文件

bash .agents/skills/cloudinary-upload/scripts/upload.sh -f uploads file1.png file2.jpg
  • -f FOLDER — Cloudinary 资源的目标文件夹(默认:uploads)
  • -r — 保留原始格式(跳过 webp 转换)

每个文件上传时的 public_id 均为不带扩展名的文件名,并设置 overwrite=True(与现有后端相同)。图片会设置 format=webp;非图片文件保持原样。

上传目录(扁平结构)

bash .agents/skills/cloudinary-upload/scripts/upload-dir.sh -f blog-images ./my-images

将目录中的所有顶层文件上传到同一个目标文件夹。不会保留目录结构(根据项目偏好,采用扁平目标结构)。添加 -r 可跳过 webp 转换。

脚本的行为

行为方式
webp 转换对图片使用 format=webp 上传参数
目标文件夹folder=<FOLDER>
覆盖overwrite=True(与现有 /admin/upload 一致)
public_id不带扩展名的文件名
非图片文件原样上传

底层命令为:

cld uploader upload <path> public_id=<name> asset_folder=<folder> overwrite=True format=webp

常见错误

  • 缺少 CLOUDINARY_URL → 脚本会报错退出。请先导出该变量。
  • 保留目录结构 → 请改为直接使用 cld upload_dir <dir> -f <folder>; 这些脚本会有意将文件扁平化。
  • 转换非图片文件 → 仅对图片扩展名应用 webp 转换;其他文件会原样上传。

评论

支持 Markdown