WeChat QR to PDF: 微信扫码查看与下载 PDF

设计目标:用户用微信扫事先印好的二维码,在手机里查看 PDF,并能下载。技术栈固定为自购域名、GitHub 私有仓库、Cloudflare Pages、离线生成二维码。不使用 Hugo,也不需要后端。 域名购买、DNS 切到 Cloudflare、Pages 绑自定义域名的操作步骤,与本站博客相同,见 Hugo + Cloudflare Pages 搭建个人博客。本文只写和「微信扫码 + PDF」有关的设计选择。 目标与非目标 目标 微信扫码打开 HTTPS 页面,能预览 PDF 页面上提供下载 PDF 源文件放在 GitHub 私有仓库里,不在 GitHub 网页上公开浏览 更新 PDF 时尽量不换二维码(同一 URL 覆盖文件即可) 非目标 不做登录、不做按人授权。知道链接的人都能打开 不接入微信公众号、JS-SDK、微信支付 不在微信里做「仅好友可见」之类的权限 单文件超过 Cloudflare Pages 限制(25 MiB)时,本方案不够,需改对象存储 整体结构 二维码里只放一个 URL,不放 PDF 本身。扫码等于用微信内置浏览器打开这个地址。 Printed QR --> https://files.example.com/catalog/ | +-- index.html landing page +-- catalog.pdf the file 组件 作用 自购域名 二维码里的长期地址,例如 files.example.com GitHub 私有仓库 存放 HTML 和 PDF,只有仓库成员能在 GitHub 上看到 Cloudflare Pages 从私有仓库拉取并托管静态文件,对外提供 HTTPS 二维码图片 事先生成、打印或贴到物料上,内容是落地页 URL 仓库私有只挡住 GitHub 上的浏览和 clone。部署到 Pages 之后,站点是公开的。这是预期行为:扫码的人没有 GitHub 账号,也必须能打开。 ...

Created 28286-08-28 · Updated 28286-08-28 · 2 min · 413 words · -