1.8 KiB
1.8 KiB
FileAuth 上传凭证(Ver2.0 §2.3.3)
生产仅使用 §2.3.3(HMAC 对 encodedPutPolicy 字符串)。FileAuth.java 旧算法(HMAC 对 policy JSON)不可用,不再维护。
生产 putPolicy(upload profile)
{"scope":"<bucket>","deadline":<unix>}
scope:仅 bucket 名(如other-doc),不要bucket:filename- 无
returnBody - HTTP 上传为 PDF 二进制体(
Content-Type: application/pdf),不使用 multipart;与 scope 无关
五步
| 步 | 说明 |
|---|---|
| 1 | 构造 putPolicy(upload profile 见上) |
| 2 | encodedPutPolicy = urlsafe_base64(putPolicy) |
| 3 | sign = HMAC-SHA1(secret, UTF-8(encodedPutPolicy)) |
| 4 | encodedSign = urlsafe_base64(sign) |
| 5 | uploadToken = AccessKey + ':' + encodedSign + ':' + encodedPutPolicy |
Base64 填充
| 环境变量 | 说明 |
|---|---|
FILEAUTH_B64=padded(默认) |
URL-safe Base64 含 =(与文档教学样例一致) |
FILEAUTH_B64=raw |
无填充(联调仍 403 时可试) |
文档样例(doc profile,仅单测)
教学样例含 returnBody 与 scope=my-bucket:sunflower.jpg,见 auth_ver233_test.go / FileAuthServiceTest::test_create_upload_token_doc_golden。
错误对照
| HTTP body | 含义 |
|---|---|
forbidden |
forward-go(IP / X-Forward-Token) |
404(纯文本)+ 403 |
已过 forward,政务云 token 验签失败 |
Web 调试
/fileauth:生成 upload profile token;?doc=1为文档黄金样例/upload:A=Runner 默认 token;B=本次上传tokenInfo(scope应为 bucket)
上传频率
见 internal/hyfile/throttle.go,FILE_UPLOAD_MIN_INTERVAL(默认 10s)。