核心功能与用法
oss-upload-online-access 是一款面向开发者和AI工作流的文件上传技能,核心功能是将本地文件或远程URL内容上传至阿里云OSS(默认)或腾讯云COS,并返回可直接在浏览器访问的HTTPS链接。
典型使用场景:用户需要"把文件放到网上"、"生成可分享的链接"、"远程访问文件"时,执行单一命令即可完成上传+校验+返回链接的全流程。
执行流程
1. 解析输入:支持本地相对/绝对路径(如./report.pdf)或HTTP/HTTPS URL
2. 若为URL:脚本内部下载为临时文件
3. 文件大小校验:必须<100MB
4. 执行上传:仅通过node scripts/upload.js调用,脚本内部读取凭证(AI/调用方绝对禁止触碰config.json或环境变量)
5. 智能厂商选择:默认阿里云,可通过--provider tencent指定,或仅配置腾讯云凭证时自动切换
6. 双重校验:先用SDK head校验对象是否存在,再对公网链接发起HEAD请求,2xx响应才输出URL;任一失败则报错退出,绝不返回不可访问的链接
7. 返回格式:https://{bucket}.{endpoint}/skill/YYYY/MM/DD/{ext}/{randomized-filename}
显著优点
- 零凭证暴露设计:config.json和
OSS_*/OSS_TENCENT_*环境变量对AI完全不可见,脚本进程内读取,从源头杜绝密钥泄露 - 上传即可用:双重校验机制确保返回的链接100%可访问,避免"上传成功但打不开"的尴尬
- 全类型支持:内置 extensive MIME映射,从代码文件(保证UTF-8不乱码)到3D模型、专业视频格式(含raw/heic/avif/mkv等)均可正确识别Content-Type
- 多平台适配:原生支持OpenClaw/ClawHub(环境变量注入)、Cursor、Claude、Copilot等Skill平台
- 智能路径管理:按
skill/年/月/日/扩展名/自动分层存储,文件名含3位随机字母+时间戳+6位随机数,避免冲突 - 腾讯云备选:同一技能支持双云厂商,容灾或合规需求场景可灵活切换
潜在局限与注意事项
- 文件大小限制:硬性100MB上限,大文件需先压缩或分片
- 公网访问依赖:返回链接为公开可读(
public-readACL),敏感文件需额外加密或改用预签名URL - 存储桶策略要求:若桶策略禁止公共读,需在控制台调整或使用自定义域名+CDN
- 凭证配置门槛:首次使用需手动配置环境变量或config.json,AI全程不参与读写,纯自助
- URL上传的临时性:远程文件先下载到本地再上传,大URL文件受本地磁盘空间限制
适合人群
- AI开发者:需要在对话/工作流中快速获取文件外链
- 内容创作者:分享截图、设计稿、文档给非技术协作者
- 自动化脚本编写者:构建需要"上传-获取链接-后续处理"的pipeline
- 多团队协作:统一使用标准OSS/COS存储,避免各类网盘碎片化
常规风险与安全建议
- 凭证保护:定期轮换AccessKey,使用子账号最小权限原则,开启操作审计日志
- 链接管控:公开链接可能被爬虫抓取,敏感内容建议设置短期有效或二次鉴权
- 传输安全:阿里云强制HTTPS上传,腾讯云同理,传输层已加密
- 代码安全:技能目录权限建议设为
700(仅所有者读写执行),.gitignore已排除config.json但仍需人工复核