Files
xk-hy-transit-go/docs/FILEAUTH.md
2026-05-28 16:39:51 +08:00

1.8 KiB
Raw Blame History

FileAuth 上传凭证Ver2.0 §2.3.3

生产仅使用 §2.3.3HMAC 对 encodedPutPolicy 字符串。FileAuth.java 旧算法HMAC 对 policy JSON不可用,不再维护。

生产 putPolicyupload profile

{"scope":"<bucket>","deadline":<unix>}
  • scope仅 bucket 名(如 other-doc不要 bucket:filename
  • returnBody
  • HTTP 上传为 PDF 二进制体Content-Type: application/pdf不使用 multipart与 scope 无关

五步

说明
1 构造 putPolicyupload 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仅单测

教学样例含 returnBodyscope=my-bucket:sunflower.jpg,见 auth_ver233_test.go / FileAuthServiceTest::test_create_upload_token_doc_golden

错误对照

HTTP body 含义
forbidden forward-goIP / X-Forward-Token
404(纯文本)+ 403 已过 forward政务云 token 验签失败

Web 调试

  • /fileauth:生成 upload profile token?doc=1 为文档黄金样例
  • /uploadA=Runner 默认 tokenB=本次上传 tokenInfoscope 应为 bucket

实现:internal/fileauth

上传频率

internal/hyfile/throttle.goFILE_UPLOAD_MIN_INTERVAL(默认 10s)。