Gofile 网盘上传【文件分享技能】
本技能可将本地文件一键上传至 Gofile 网盘,上传完成后自动生成公开分享链接。 无需手动打开网页操作,无需注册网盘账号,适合临时文件分享、轻量文件管理场景。
适用场景
- 非常适合临时文件分享,方便快捷
- 支持任意文件格式,图片可预览,音视频文件可播放
- 完美适配 Hermes Agent,上传速度快,支持断点续传
前置条件
- Hermes Agent 或者其他的 AI软件都可以
- Python 3 及
requests库(如未安装,执行pip install requests)
上传流程
第一步:获取用户提供的信息
从用户对话中提取:
- 本地文件路径(必须):文件的完整绝对路径
- 文件夹编号(可选):如用户指定则传入,不指定则自动新建文件夹
第二步:上传文件
import requests, os, mimetypes, json
def gofile_upload(file_path, folder_id=None):
if not os.path.isfile(file_path):
return {"success": False, "error": f"文件不存在,请检查路径: {file_path}"}
# 获取可用上传服务器
srv = requests.get("https://api.gofile.io/servers", timeout=30).json()
if srv.get("status") != "ok" or not srv.get("data", {}).get("servers"):
return {"success": False, "error": "无法获取上传服务器,请稍后重试"}
server = srv["data"]["servers"][0]["name"]
# 上传文件
mime = mimetypes.guess_type(file_path)[0] or "application/octet-stream"
data = {}
if folder_id:
data["folderId"] = folder_id
try:
with open(file_path, "rb") as f:
resp = requests.post(
f"https://{server}.gofile.io/contents/uploadfile",
data=data,
files={"file": (os.path.basename(file_path), f, mime)},
timeout=300
).json()
if resp.get("status") == "ok":
d = resp["data"]
return {
"success": True,
"文件名": os.path.basename(file_path),
"文件大小": os.path.getsize(file_path),
"文件链接": d.get("downloadPage"),
"文件夹ID": d.get("parentFolder"),
"文件夹链接": f"https://gofile.io/d/{d.get('parentFolder', '')}"
}
return {"success": False, "error": f"上传失败: {resp.get('status', '未知错误')}"}
except requests.exceptions.Timeout:
return {"success": False, "error": "上传超时,文件较大或网络不稳定,请重试"}
except requests.exceptions.ConnectionError:
return {"success": False, "error": "网络连接失败,请检查网络后重试"}
except Exception as e:
return {"success": False, "error": f"上传出错: {str(e)}"}
result = gofile_upload(FILE_PATH, folder_id=FOLDER_ID)
print(json.dumps(result, indent=2, ensure_ascii=False))
执行前将 FILE_PATH 替换为用户提供的文件路径,FOLDER_ID 替换为文件夹编号(未指定则传 None)。
第三步:反馈结果
上传成功后,向用户展示:
- 文件链接:点击可直接打开、下载该文件,支持分享给他人
- 文件夹链接:点击可查看文件夹内所有已上传文件
上传失败时,告知用户具体错误原因(文件不存在、网络超时等),根据提示调整后重新操作。
使用示例
基础上传(自动新建文件夹):
适合单次上传、无需归类的场景,直接告知文件路径即可。
帮我把本地文件 C:\Users\admin\Documents\文档.pdf 上传到 Gofile 网盘
帮我把 /home/user/照片.jpg 上传到 Gofile
指定文件夹上传:
需要将文件归类到已有文件夹时,补充文件夹编号。
帮我把本地图片 /home/user/照片.jpg 上传到 Gofile 网盘 AA9Gj4 文件夹里
把 C:\报告.docx 传到 Gofile 的 BB2Xk9 文件夹
注意事项
- 文件路径必须使用完整的本地绝对路径,确保能够正常读取
- 连续 10 天无人访问的文件会被系统自动归档,重要文件请做好本地备份
- 网盘服务器为海外节点,大文件上传速度可能受网络影响,建议耐心等待
- 请勿上传隐私、涉密文件并公开分享,避免信息泄露
- 目前每月有固定100GB流量额度,日常使用足够,请合理控制
Scan to join WeChat group