PixelDrop 打开 PixelDrop

保存到 PixelDrop 测试版

让使用你的网站或应用的人把文件直接保存到他们自己的 PixelDrop。一个 script 标签,一次调用。

测试版:该工具刚推出,选项可能会变化,你的反馈将帮助我们完善它。有问题或想法?请联系 [email protected]。

添加

<script src="https://pixeldrop.ca/sdk.js"></script>

<button id="save">Save to PixelDrop</button>
<script>
  document.getElementById("save").onclick = function () {
    PixelDrop.save(myFileOrBlob, { name: "report.pdf" })
      .then(function (saved) { console.log("saved", saved.id, saved.folder); })
      .catch(function (err)  { console.log("not saved:", err.code); });
  };
</script>

选项:name(文件名)和 folder(默认文件放进以你的网站命名的文件夹;给一个简短文本可自行命名文件夹,或用 false 把文件直接放在用户的文件中)。

请在点击事件中调用 PixelDrop.save():浏览器只会因点击而打开 PixelDrop 窗口。文件可以是 File、Blob,或返回其中之一的函数(或其 Promise)。

试一试

选择任意文件,然后点击按钮。你需要一个已开通 Membre 的 PixelDrop 账户,并已连接 Pixeldrain 账户。


让他们从自己的 PixelDrop 中选择文件

PixelDrop.pick({ hours: 168 })
  .then(function (file) { console.log(file.name, file.url); })
  .catch(function (err) { console.log("not chosen:", err.code); });

窗口会向用户展示他们自己的文件;用户选择一个(或用 multiple: true 选择多个)。你的应用会收到 { id, name, size, url, expires_at }:一个指向文件的链接,有效期为 hours 小时(1 到 720,默认 168)。除了该链接,它不会得到文件内容,也得不到账户的其他任何信息。错误:popup_blocked、cancelled、not_member、no_files、failed。

用户看到什么

会打开一个小的 pixeldrop.ca 窗口。用户在需要时登录,并看到:“你的网站.com 想把文件保存到你的 PixelDrop”,以及文件名和大小。用户点击保存。文件会存入用户的 PixelDrop,放在以你的网站命名的文件夹中(你可以自己命名文件夹,或直接存放)。不会与任何人共享。

网站名称来自浏览器而不是你的代码,因此没有页面可以冒充其他页面。用户可以在设置 → 已连接的应用中查看并移除用过的网站。

你的页面得到什么

PixelDrop.save() 返回一个 Promise,结果为 { id, name, size, folder }。你的页面不会得到密钥、令牌或账户访问权限:只有结果。

错误 code含义
popup_blocked浏览器拦截了窗口。请直接在点击事件中调用 save()。
cancelled用户关闭了窗口或点击了取消。
not_member从其他网站保存需要 PixelDrop Membre(免费试用也算)。
too_large没有 PixelDrop 浏览器扩展时,无法保存超过 25 MB 的文件;有扩展则不限大小。
failed其他情况;err.message 会说明原因。

注册你的应用并获得“已验证”徽章

未注册的网站在窗口中显示为“此网站尚未在 PixelDrop 注册”。注册后,人们会看到它的名称,经我们审核后还会看到绿色的 ✓ 已验证的应用 徽章。

  1. 登录后打开设置 → 开发者。输入应用名称和网站地址(https://你的网站.com)。
  2. PixelDrop 会给你一行文本。请在 https://你的网站.com/.well-known/pixeldrop-verify.txt 发布一个纯文本文件,内容恰好为这一行。
  3. 点击立即检查。PixelDrop 通过 https 读取该文件一次,不跟随重定向。匹配后,你的网站即被证明,并显示其名称。
  4. 随后我们会审核并批准该应用:徽章就会出现。你可以随时移除你的应用。

让人们向你的应用发送文件

网站被证明后,你可以在其上添加一个接收地址(设置 → 开发者)。已经从你的网站保存过文件的用户,会在每个文件的发送到…中看到你的应用。他们选择后,PixelDrop 会向你的地址发送一条简短的 JSON 消息:

{ "event": "file.shared", "id": "…", "time": "2026-10-16T20:00:00Z",
  "file": { "name": "report.pdf", "size": 1234, "sha256": "…", "url": "https://pixeldrop.ca/s/…" },
  "expires_at": "…", "max_downloads": 3 }

链接有效期为 24 小时,可下载 3 次。消息中不包含用户的任何信息:没有姓名、邮箱或账户。消息带有签名,让你确认它来自 PixelDrop。请求头为 X-PixelDrop-Signature: t=<Unix 秒数>,v1=<十六进制>,其中 v1 是用你的密钥对 <t>.<原始请求体> 计算的 HMAC-SHA256(密钥显示在设置中)。请校验它,并拒绝几分钟之前的 t。返回任何 2xx 状态表示接受;其他状态会告诉用户该应用未接受文件。

const sig = req.headers["x-pixeldrop-signature"];            // t=...,v1=...
const [t, v1] = sig.split(",").map(x => x.split("=")[1]);
const ok = crypto.createHmac("sha256", SECRET).update(t + "." + rawBody).digest("hex") === v1
        && Math.abs(Date.now()/1000 - Number(t)) < 300;

地址必须在你自己的网站上(相同主机,https,无端口)。PixelDrop 从其服务器调用该地址,且绝不会访问私有或内部地址。

一个网站同一时间只能属于一个人。有问题?请联系 [email protected]。