将任意本地文件或目录上传至 PinMe(pinme.eth.limo),立即获得一个简短、可分享的 URL(*.pinit.eth.limo)。支持所有文件类型:HTML 页面、PDF、图片、音频、视频、文档,甚至完整目录。PinMe 使用公共 IPFS —— 上传的内容默认公开可访问;请勿上传内部/私有/含凭证的数据。AppKey 持久化存储于 `~/.local/share/pinme-share/appkey.json`(符合 XDG 规范),可通过环境变量 `PINME_APPKEY` 或命令行参
pinme-share.是一项面向实际任务的技能,主要用于Upload any file 或目录 to PinMe(公共IPFS)并获取一个短的:.pinit.是一项面向实际任务的技能,主要用于Version:1.0.1.;License: MIT. 授权: Evan Song ^ github.com/ Songhonglei.;
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
将任意文件或目录上传至 PinMe(公共 IPFS),并获取一个简短的 *.pinit.eth.limo URL。
--rm 仅从您的账户中移除 pin 引用 — 第三方节点上的副本仍可能持续存在。upload 均会在 stderr 输出一条警告;在自动化流程中可通过传入 --yes 跳过该提示。PinMe v2.x 需要身份认证。AppKey 查找顺序如下:
PINME_APPKEY 环境变量(最高优先级,不持久化 — 适用于 CI 或一次性任务)pinme CLI 已配置 AppKey → 直接复用~/.local/share/pinme-share/appkey.json 存在 → 自动应用于 pinme CLIerror_type: auth_required,并提示用户前往 https://pinme.eth.limo 获取 AppKeypython3 scripts/upload_to_pinme.py --set-appkey
该命令将密钥同时写入 pinme CLI 和 ~/.local/share/pinme-share/appkey.json(权限为 0600)。
该本地文件绝不会被提交至 Git 或随发布的 skill bundle 分发。
export PINME_APPKEY_FILE=/custom/path/appkey.json # 或自动适配 $XDG_DATA_HOME: export XDG_DATA_HOME=$HOME/my-xdg-data # → $HOME/my-xdg-data/pinme-share/appkey.json
python3 scripts/upload_to_pinme.py --show-appkey
# 任意单个文件 python3 scripts/upload_to_pinme.py /path/to/file.html python3 scripts/upload_to_pinme.py /path/to/report.pdf # 整个目录(无需 index.html) python3 scripts/upload_to_pinme.py /path/to/dist/ # 添加 --verbose 查看大文件上传进度 python3 scripts/upload_to_pinme.py /path/to/video.mp4 --verbose # 跳过隐私警告(适用于 cron / 自动化流水线) python3 scripts/upload_to_pinme.py /path/to/file.html --yes # 自定义超时时间(默认:60s + 每 MB 2s,下限 180s,上限 1800s) python3 scripts/upload_to_pinme.py /path/to/big.zip --timeout 900
输出格式 — stdout 最后一行始终为单个 JSON 对象:
{"success": true, "url": "https://xxxx.pinit.eth.limo", "size_bytes": 12345, "timeout_used": 180}
python3 scripts/upload_to_pinme.py --list python3 scripts/upload_to_pinme.py --list --limit 5 python3 scripts/upload_to_pinme.py --list --raw # 不解析;直接返回原始 CLI 文本
结构化输出示例:
{"success": true, "count": 3, "history": [
{"name": "foo.html", "cid": "Qm...", "url": "https://xxxx.pinit.eth.limo", "size": "12 KB", "time": "2026-05-21 09:30"}
]}
python3 scripts/upload_to_pinme.py --rm
⚠️ 公共 IPFS 上的副本无法真正删除;此操作仅从您的账户中移除 pin 引用。
python3 scripts/upload_to_pinme.py --wallet
PinMe 提供免费配额(约 500 次上传)。超出后可能产生费用 — 详见 https://pinme.eth.limo 控制台。
python3 scripts/upload_to_pinme.py --logout
清除 pinme CLI 的会话状态及 ~/.local/share/pinme-share/appkey.json 文件。
| 流 | 用途 |
|---|---|
| stdout | 最后一行始终为且仅为一个 JSON 对象 — 可安全通过管道传递给 jq |
| stderr | 进度信息、隐私警告、调试输出 — 绝不影响 JSON 解析 |
示例:
URL=$(python3 scripts/upload_to_pinme.py /tmp/foo.html | jq -r '.url')
error_type |
触发条件 | 建议处理方式 |
|---|---|---|
auth_required |
缺失 AppKey / pinme 报告登录失败 |
提示用户运行 --set-appkey 或前往获取 AppKey |
invalid_path |
路径不存在 / 不可读 | 请用户确认路径是否正确 |
oversize |
单个文件 > 200 MB 或目录 > 1 GB | 拆分文件或改用其他存储方案 |
cli_missing |
pinme CLI 安装失败 / 未找到 |
检查 Node.js / 网络连接 / npm 权限 |
network |
超时 / DNS 失败 / 连接被拒 / 5xx 错误 | 重试或验证出站网络连通性 |
quota_exceeded |
PinMe 配额耗尽 / 钱包余额不足 | 通过 PinMe 控制台充值或切换账户 |
url_not_found |
上传成功但未能解析出有效 URL | 检查原始输出(CLI 格式可能已变更) |
usage |
未指定任何操作 | 显示 --help 并询问用户意图 |
invalid_appkey |
传入 --set-appkey 的 AppKey 格式异常(长度 < 20) |
请用户重新核对并输入 |
conflicting_args |
同时传入多个互斥操作(例如同时指定路径和 --list) |
请分别调用,每次仅执行一个操作 |
unknown |
兜底错误类型 | error 字段包含原始 stderr 内容 |
退出码说明:0 表示成功 / 1 表示通用失败 / 2 表示结构化失败(需解析 JSON 中的 error_type)。
pinme CLI(如缺失则自动通过 npm install -g pinme 安装)若用户直接在聊天窗口中粘贴 HTML 内容,agent 应执行以下步骤:
/tmp/pinme_user_.html | 变量 | 用途 | 示例 |
|---|---|---|
PINME_APPKEY |
一次性 / CI 覆盖(最高优先级,不持久化) | export PINME_APPKEY=abc123... |
PINME_APPKEY_FILE |
覆盖 AppKey 存储路径 | export PINME_APPKEY_FILE=$HOME/.config/pinme/key.json |
XDG_DATA_HOME |
用于确定默认存储路径(遵循 XDG Base Directory 规范) | export XDG_DATA_HOME=$HOME/my-xdg-data |
默认存储路径:${XDG_DATA_HOME:-$HOME/.local/share}/pinme-share/appkey.json。
pinme CLI 工具 + --list)时,不再静默执行首个匹配分支并丢弃其余参数,而是返回 conflicting_args 错误。--set-appkey 传入过短的密钥时,不再将密钥片段(key[:20])回显至错误输出;现仅报告密钥长度。相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章