签名链接是一种临时访问能力,拿到链接的人可能在有效期内使用它。客户门户增加下载按钮之前,应先确定文件、操作和有效时间。难猜的地址不等于绑定了具体用户。
适用读者与交付决定
设计工作室与B2B客户资料门户。把本题作为给建站或技术供应方的验收任务;需要真实系统证据的地方不能由演示文件代替。
官方依据与解释边界
R2 预签名链接绑定 S3 操作与有效期,使用 S3 API 端点而非自定义域名地址。应把链接视为敏感凭据,签发前先做权限检查。 Cloudflare R2: presigned URLs · 核对日期:2026年10月16日。
已填写教学例子
合成例子,不是真实客户案例。 输入、预期及反例如下;真实平台尚未按此例集成测试。
窄屏可横向滚动表格。
| 输入/情况 | 检查口径 | 预期结果 |
|---|---|---|
| GET, file-A, t=90, expiry=100 | 对象操作匹配 | 模型内可用 |
| 改用写入 | 操作不符 | 拒绝 |
| GET at expiry=100 | 已到边界 | 本模型拒绝 |
怎样执行验收
- 写明谁可申请及其有权访问的具体文件。
- 只签发必要操作与合理短期,不记录完整签名。
- 在获准测试桶核对对象错误、操作错误及过期路径。
如何解释结果与保留证据
离线检查仅模拟请求开始时的边界,不验证加密签名,也不实现 R2。到期前已开始的传输可能有不同处理,应核对供应方当前行为。若需逐用户撤销,应明确采用认证网关,不能假定每条签名链接都可单独撤销。
适用边界
不使用真实密钥、桶策略或客户文件。例子不是安全认证,也不是生产权限引擎。
离线复核
保存下方两份文件到同一目录,用Node22.13或更新版本执行。模型只验证有限输入,不代表真实服务或认证。 已填输入及预期输出 · 可检查的函数
node decision-check.mjs private-download-expiry-contract.json