pinme-share

Polar Sponsor
爱发电 赞助
.NET 9.0

将任意本地文件或目录上传至 PinMe(pinme.eth.limo),立即获得一个简短、可分享的 URL(*.pinit.eth.limo)。支持所有文件类型:HTML 页面、PDF、图片、音频、视频、文档,甚至完整目录。PinMe 使用公共 IPFS —— 上传的内容默认公开可访问;请勿上传内部/私有/含凭证的数据。AppKey 持久化存储于 `~/.local/share/pinme-share/appkey.json`(符合 XDG 规范),可通过环境变量 `PINME_APPKEY` 或命令行参

pinme-share.

功能概述

pinme-share.是一项面向实际任务的技能,主要用于Upload any file 或目录 to PinMe(公共IPFS)并获取一个短的:.pinit.是一项面向实际任务的技能,主要用于Version:1.0.1.;License: MIT. 授权: Evan Song ^ github.com/ Songhonglei.;

核心要点

  • Repositor: htt;
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;

结果检查与注意事项

涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

pinme-share

将任意文件或目录上传至 PinMe(公共 IPFS),并获取一个简短的 *.pinit.eth.limo URL。

  • 版本: 1.0.1
  • 许可证: MIT
  • 作者: Evan Song · github.com/Songhonglei
  • 代码仓库: https://github.com/Songhonglei/html-tool-suite

⚠️ 公共数据警告 — 首次使用前请务必阅读

  • PinMe 运行于公共 IPFS 上:您上传的任何内容均为全球可读;任何人只要持有该 URL 即可访问。
  • CID 实质上不可删除:IPFS 节点会缓存内容;--rm 仅从您的账户中移除 pin 引用 — 第三方节点上的副本仍可能持续存在。
  • 🚫 切勿上传:公司内部文档 / 客户数据 / 凭据 / 私人信息 / 尚未发布的材料。
  • 每次执行 upload 均会在 stderr 输出一条警告;在自动化流程中可通过传入 --yes 跳过该提示。

🔑 首次配置 — 设置您的 AppKey

PinMe v2.x 需要身份认证。AppKey 查找顺序如下:

  1. PINME_APPKEY 环境变量(最高优先级,不持久化 — 适用于 CI 或一次性任务)
  2. pinme CLI 已配置 AppKey → 直接复用
  3. 本地文件 ~/.local/share/pinme-share/appkey.json 存在 → 自动应用于 pinme CLI
  4. 否则 → 脚本返回 error_type: auth_required,并提示用户前往 https://pinme.eth.limo 获取 AppKey

配置 / 替换 AppKey(持久化)

python3 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"}
]}

🗑️ 取消 pin(从您的 pin 列表中移除)

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 / stderr 接口约定

流 用途
stdout 最后一行始终为且仅为一个 JSON 对象 — 可安全通过管道传递给 jq
stderr 进度信息、隐私警告、调试输出 — 绝不影响 JSON 解析

示例:

URL=$(python3 scripts/upload_to_pinme.py /tmp/foo.html | jq -r '.url')

📋 错误码参考(用于 agent 路由)

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)。

📦 约束条件与依赖项

  • 单个文件 ≤ 200 MB,目录 ≤ 1 GB(PinMe 服务端限制)
  • 仅支持静态文件(不支持服务端处理)
  • Node.js ≥ 16.13.0(自动校验)
  • pinme CLI(如缺失则自动通过 npm install -g pinme 安装)
  • PinMe AppKey(必需)

🛠️ 粘贴内容工作流

若用户直接在聊天窗口中粘贴 HTML 内容,agent 应执行以下步骤:

  1. 将其写入 /tmp/pinme_user_.html
  2. 以该路径调用本脚本
  3. 返回生成的 URL

🔧 环境变量

变量 用途 示例
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 提供 IPFS 固定服务及 pinme CLI 工具
  • 本工具属于 html-tool-suite 项目的一部分 —— 专注于 HTML 生成、发布与共享能力

更新日志

v1.0.1

  • 修复(静默失败):当同时传入多个互斥操作(例如 + --list)时,不再静默执行首个匹配分支并丢弃其余参数,而是返回 conflicting_args 错误。
  • 修复(安全性):当使用 --set-appkey 传入过短的密钥时,不再将密钥片段(key[:20])回显至错误输出;现仅报告密钥长度。

v1.0.0

  • 首次开源发布(符合 XDG 规范的存储路径、英文文档、全英文 CLI)。

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习