2026-05-28 16:39:51 +08:00
|
|
|
|
package logweb
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
syncer "xk-hy-transit-go/internal/sync"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2026-05-28 17:03:08 +08:00
|
|
|
|
// UploadTokenInfo 本次上传使用的 FileAuth.java 凭证(Web 调试展示)。
|
2026-05-28 16:39:51 +08:00
|
|
|
|
type UploadTokenInfo struct {
|
|
|
|
|
|
Algorithm string `json:"algorithm"`
|
|
|
|
|
|
PolicyJSON string `json:"policyJson"`
|
|
|
|
|
|
EncodedPutPolicy string `json:"encodedPutPolicy"`
|
|
|
|
|
|
SignInput string `json:"signInput"`
|
|
|
|
|
|
EncodedSign string `json:"encodedSign"`
|
|
|
|
|
|
UploadToken string `json:"uploadToken"`
|
|
|
|
|
|
UploadTokenMasked string `json:"uploadTokenMasked"`
|
|
|
|
|
|
DeadlineUnix int64 `json:"deadlineUnix"`
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func uploadTokenInfoFromResult(res *syncer.UploadTestResult) UploadTokenInfo {
|
|
|
|
|
|
if res == nil {
|
|
|
|
|
|
return UploadTokenInfo{}
|
|
|
|
|
|
}
|
|
|
|
|
|
p := res.Parts
|
|
|
|
|
|
return UploadTokenInfo{
|
|
|
|
|
|
Algorithm: p.Algorithm,
|
|
|
|
|
|
PolicyJSON: p.PolicyJSON,
|
|
|
|
|
|
EncodedPutPolicy: p.EncodedPutPolicy,
|
|
|
|
|
|
SignInput: p.SignInput,
|
|
|
|
|
|
EncodedSign: p.EncodedSign,
|
|
|
|
|
|
UploadToken: p.UploadToken,
|
|
|
|
|
|
UploadTokenMasked: maskPreview(p.UploadToken),
|
|
|
|
|
|
DeadlineUnix: p.DeadlineUnix,
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func uploadTestPayload(res *syncer.UploadTestResult, uploadURL string, ok bool, fileID string) map[string]any {
|
|
|
|
|
|
out := map[string]any{
|
|
|
|
|
|
"ok": ok,
|
|
|
|
|
|
"url": uploadURL,
|
|
|
|
|
|
"tokenInfo": uploadTokenInfoFromResult(res),
|
|
|
|
|
|
}
|
|
|
|
|
|
if res != nil {
|
|
|
|
|
|
out["filename"] = res.Filename
|
|
|
|
|
|
out["scope"] = res.Scope
|
|
|
|
|
|
}
|
|
|
|
|
|
if fileID != "" {
|
|
|
|
|
|
out["fileId"] = fileID
|
|
|
|
|
|
}
|
|
|
|
|
|
return out
|
|
|
|
|
|
}
|