Files
openclaw-skill-qiniu/README_OVERRIDE.md
daoqi 1aeae9cc51 initial: 七牛云上传 OpenClaw Skill
功能特性:
- 支持 /upload, /u 命令上传文件到七牛云
- 支持 /qiniu-config 配置管理
- 支持飞书卡片交互
- 支持指定上传路径和存储桶
- 自动刷新 CDN 缓存
- 支持文件覆盖上传

包含组件:
- OpenClaw 处理器 (openclaw-processor.js)
- 独立监听器 (scripts/feishu-listener.js)
- 核心上传脚本 (scripts/upload-to-qiniu.js)
- 部署脚本 (deploy.sh)
- 完整文档

部署方式:
1. 复制 skill 到 ~/.openclaw/workspace/skills/
2. 配置 ~/.openclaw/credentials/qiniu-config.json
3. 重启 OpenClaw Gateway
2026-03-07 16:02:18 +08:00

3.1 KiB
Raw Blame History

七牛云覆盖上传功能 - 重要说明

⚠️ 为什么同名文件无法覆盖?

七牛云存储桶默认可能启用了**"防覆盖"设置,这是一个存储桶级别的设置**,需要在七牛云控制台手动关闭。

解决方案(推荐)

方法 1通过七牛云控制台最简单

  1. 登录七牛云控制台

  2. 进入对象存储

    • 点击左侧菜单 "对象存储"
    • 找到你的存储桶(根据配置是 daoqires
  3. 进入存储桶设置

    • 点击存储桶名称进入详情页
    • 点击顶部 "设置" 标签
    • 选择 "空间设置"
  4. 关闭防覆盖

    • 找到 "防覆盖" 或 "禁止覆盖" 选项
    • 将其设置为 关闭 状态
    • 点击 "保存"
  5. 重启 Gateway

    openclaw gateway restart
    
  6. 测试上传

    /upload /test/file.txt
    # 再次上传同名文件
    /upload /test/file.txt
    # 现在应该可以覆盖了
    

方法 2使用不同文件名临时方案

如果无法修改存储桶设置,可以使用时间戳或随机数生成唯一文件名:

# 使用日期时间
/upload /config/file_20260304_133000.txt

# 或使用随机数
/upload /config/file_$(openssl rand -hex 4).txt

方法 3修改上传脚本添加覆盖参数

upload-to-qiniu.js 中,上传凭证已设置 insertOnly: 0,但这仅在存储桶允许覆盖时生效

如果存储桶本身禁止覆盖,上传凭证的设置不会生效。


🔍 如何确认是否启用了防覆盖?

方法 1查看上传错误信息

上传同名文件时,如果返回以下错误,说明启用了防覆盖:

❌ 上传失败file exists
或
❌ 上传失败400 Bad Request - overwriting is not allowed

方法 2查看七牛云控制台

  1. 登录 https://portal.qiniu.com/
  2. 进入对象存储 → 你的存储桶
  3. 点击 "设置" → "空间设置"
  4. 查看 "防覆盖" 选项的状态

📋 当前配置

根据你的配置:

配置项
存储桶名称 daoqires
区域 z2 (华南)
CDN 域名 https://daoqi.daoqi888.cn
AccessKey YO_W...S_pK

🛠️ 已修改的文件

  1. scripts/upload-to-qiniu.js

    • 添加 insertOnly: 0 到上传凭证
    • 修复上传 API 端点为 /(标准表单上传)
  2. SKILL.md

    • 添加覆盖上传说明
    • 添加故障排查指南
  3. scripts/check-bucket-override.js (新增)

    • 检查存储桶覆盖设置
  4. scripts/update-bucket-setting.js (新增)

    • 更新存储桶设置

📞 需要帮助?

如果以上方法都无法解决问题,请提供:

  1. 上传错误信息的完整输出
  2. 七牛云控制台中"空间设置"的截图
  3. 存储桶名称和区域

📖 参考文档