本地文件发送工具。用户通过自然语言指定文件路径,上传至云存储并返回下载链接。支持 Windows/Linux/macOS 路径格式。仅适用于本地部署的 OpenClaw,云端部署无法访问本地文件。
此 skill 仅适用于本地部署的 OpenClaw!
云端用户替代方案:
将本地文件上传到云存储并发送下载链接,用户只需通过自然语言指定文件路径。
当用户说以下类似语句时触发:
当收到用户的文件发送请求时,按以下步骤处理:
从用户消息中提取文件路径,支持以下格式:
Windows 路径:
E:\校对\报告.xlsxC:\Users\用户名\Documents\file.pdfD:\项目\2024\数据.xlsxLinux/macOS 路径:
/home/user/report.xlsx/Users/用户名/Documents/file.pdf~/Documents/report.xlsxpython
import os
# 处理用户目录
if path.startswith('~'):
path = os.path.expanduser(path)
# Windows 路径处理
path = os.path.normpath(path)
# 获取绝对路径
path = os.path.abspath(path)
使用 exec 工具检查文件是否存在:
Windows PowerShell:
powershell
Test-Path "E:\校对\报告.xlsx"
Get-Item "E:\校对\报告.xlsx" | Select-Object Name, Length, LastWriteTime
Linux/macOS:
bash
ls -la "/home/user/report.xlsx"
重要:飞书等平台不支持直接发送本地文件路径,必须先上传到云存储。
使用 lightclaw_upload_file 工具上传文件:
json
{
"paths": ["E:\\校对\\报告.xlsx"]
}
该工具会返回公开的下载链接。
上传成功后,发送包含下载链接的消息:
text
📄 文件已上传,请点击下载:
[报告.xlsx](下载链接)
text
把 E:\校对\报告.xlsx 发给飞书
识别路径: E:\校对\报告.xlsx
检查文件: powershell
Test-Path "E:\校对\报告.xlsx"
上传文件: json
{
"paths": ["E:\\校对\\报告.xlsx"]
}
发送结果: text
✅ 文件已上传,请点击下载:
[报告.xlsx](https://xxx.lightclaw.com/xxx)
text
❌ 文件不存在: E:\校对\报告.xlsx
请检查路径是否正确。
text
❌ 无法读取文件: C:\System\config.dat
权限不足,请检查文件访问权限。
text
⚠️ 文件较大 (150MB),上传可能需要较长时间...
正在上传中...
text
⚠️ 当前为云端部署,无法访问您的本地文件。
替代方案:
1. 直接在聊天中上传文件
2. 使用飞书自带的文件发送功能
飞书、企业微信等平台的 Bot API 不支持直接发送本地文件路径。必须通过以下方式之一:
lightclaw_upload_file 上传本 skill 选择方案 1,因为它:
\,Linux/macOS 使用正斜杠 /