s_file.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package schema
  2. import "net/http"
  3. // FileInfo 文件信息
  4. type FileInfo struct {
  5. URL string `json:"url"`
  6. Name string `json:"name"`
  7. Hash string `json:"hash"`
  8. Size int64 `json:"size"`
  9. }
  10. // FileChunkInfo 文件块信息
  11. type FileChunkInfo struct {
  12. Current int `json:"current"` // 当前块
  13. Total int `json:"total"` // 总块数
  14. URL string `json:"url"` // 路径
  15. Name string `json:"name"` // 文件名
  16. Hash string `json:"hash"` // 文件hash
  17. IsComplete int `json:"is_complete"` // 是否完成上传(1:未完成2:已完成)
  18. }
  19. // UploadParams 上传文件时的参数
  20. type UploadParams struct {
  21. BaseUrl string `json:"base_url" v:"required#必须输入base_url"`
  22. FormKey string `json:"form_key" v:"required#必须输入file字段的名称form_key"`
  23. }
  24. type PersistentFileRequest struct {
  25. Hash string `json:"hash" v:"required#必须输入hash"` // 文件的哈希值
  26. }
  27. type FileChunkUploadReq struct {
  28. BaseUrl string `json:"base_url" v:"required#必须输入base_url"`
  29. FormKey string `json:"form_key" v:"required#必须输入file字段的名称form_key"`
  30. Index int `json:"index" v:"required#当前块索引不能为空(index)|min:1"`
  31. Total int `json:"total" v:"required#必须传总块数total|min:1"`
  32. Hash string `json:"hash" v:"required#必须输入文件的md5值"`
  33. }
  34. // FileChunkParams 文件分块上传参数
  35. type FileChunkParams struct {
  36. HttpRequest *http.Request // http request object
  37. FormKey string // form-data file key
  38. BaseUrl string // base url like bucket name
  39. Index int // current file chunk index
  40. Total int // total chunks
  41. Hash string
  42. }
  43. // FileMergeParams 文件合并参数
  44. type FileMergeParams struct {
  45. HttpRequest *http.Request // http request object
  46. BaseUrl string // base url like bucket name
  47. Total int // total chunks
  48. Hash string
  49. FileName string
  50. }