FileRouter.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package router
  2. import (
  3. "crypto/rand"
  4. "file-manger-server/db"
  5. "file-manger-server/domain"
  6. "file-manger-server/util"
  7. "fmt"
  8. "github.com/gin-gonic/gin"
  9. "strings"
  10. )
  11. func UploadInfo(c *gin.Context) {
  12. //获取用户数据信息
  13. claims, err := util.ValidateTokenToMyClaims(c.GetHeader("auth-sign"))
  14. if err != nil {
  15. c.JSON(200, CreateResultError(400, "token错误"))
  16. return
  17. }
  18. var user domain.User
  19. db.Engin.Table("user").Where("id =? ", claims.Id).Get(&user)
  20. tid := ToHexBytes(random32Bytes())
  21. db.FileUserDao{}.Insert(tid, user.Id)
  22. c.JSON(200, CreateResultData(gin.H{
  23. "transactionId": tid,
  24. }))
  25. }
  26. func ToHexBytes(bytes []byte) string {
  27. var hexBytes string
  28. for b := range bytes {
  29. hexBytes = fmt.Sprint(hexBytes, fmt.Sprintf("%02X", bytes[b]))
  30. }
  31. return strings.TrimSpace(hexBytes)
  32. }
  33. func random32Bytes() []byte {
  34. randomBytes := make([]byte, 32)
  35. _, err := rand.Read(randomBytes)
  36. if err != nil {
  37. panic(err) // 处理错误(如随机源不可用)
  38. }
  39. // 直接使用 randomBytes(原始二进制)
  40. //fmt.Printf("Raw Bytes: %v\n", randomBytes)
  41. return randomBytes
  42. }