SuperAPI AI 工具集

cloudinary-webhooks

通用与其它

查看项目

更新于 10-16 05:52

技能介绍

用途:搭建 Cloudinary 通知接收端,校验签名并处理各类事件通知。Cloudinary 在资源上传完成、eager(异步)转换完成、审核完成、资源被删除或重命名、文件夹变更等时机,向注册 URL 发送 POST 通知。每个请求体为 JSON,使用账户 API Secret 签名,并附带 x-cld-signature(十六进制摘要)和 x-cld-timestamp(Unix 时间戳)两个请求头。

主要能力:校验签名;识别并处理常见 notification_type,如 upload、eager、delete、rename、moderation、resource_tags_changed、create_folder、delete_folder,以及 resource_context_changed、resource_metadata_changed、access_control_changed、move。

必要用法:签名由原始请求体、时间戳与 API Secret 拼接后计算摘要得出,默认 sha1,账户可选用 sha256。务必使用逐字节的原始请求体,不要先 JSON.parse 再重新序列化后校验。建议用官方 SDK,它会同时校验摘要与新鲜度窗口(默认 7200 秒): cloudinary.config({ api_secret: process.env.CLOUDINARY_API_SECRET, signature_algorithm: process.env.CLOUDINARY_SIGNATURE_ALGORITHM || 'sha1' }); const valid = cloudinary.utils.verifyNotificationSignature(rawBody, Number(timestamp), signature); 缺少签名头时先返回 400(401 应表示签名无效)。签名密钥即账户 API Secret,没有单独按 Webhook 配置的签名密钥。本地开发可用隧道:npx hookdeck-cli listen 3000 cloudinary --path /webhooks/cloudinary(FastAPI 示例用端口 8000)。

适用场景:需要可靠接收 Cloudinary 资源与文件夹变更事件,并按通知类型分发处理的场景。

限制:正文未提供具体收费与价格信息;示例代码细节可从资料对应示例目录获取,此处不展开。