add struct upload id
This commit is contained in:
parent
8e6d22ee1d
commit
a07f826510
@ -35,25 +35,32 @@ func (s *Service) UploadCreate(c *gin.Context) {
|
||||
})
|
||||
}
|
||||
|
||||
type UploadPartRequest struct {
|
||||
UploadId string `form:"upload_id" binding:"required,uuid"`
|
||||
type UploadUri struct {
|
||||
Id string `uri:"upload_id" binding:"required,uuid"`
|
||||
}
|
||||
|
||||
type UploadPartQuery struct {
|
||||
Part uint `form:"part" binding:"required"`
|
||||
PartSha256 string `form:"sha256" binding:"required,sha256"`
|
||||
}
|
||||
|
||||
func (s *Service) UploadPart(c *gin.Context) {
|
||||
var uploadPart UploadPartRequest
|
||||
if c.BindQuery(&uploadPart) != nil {
|
||||
var (
|
||||
upload UploadUri
|
||||
uploadPart UploadPartQuery
|
||||
)
|
||||
|
||||
if c.BindUri(&upload) != nil || c.BindQuery(&uploadPart) != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if !s.Storage.Exists(StorageTmp, uploadPart.UploadId) {
|
||||
if !s.Storage.Exists(StorageTmp, upload.Id) {
|
||||
c.AbortWithError(http.StatusNotFound, ErrUploadNotExists)
|
||||
return
|
||||
}
|
||||
|
||||
f, err := os.Create(
|
||||
s.Storage.Join(StorageTmp, uploadPart.UploadId, fmt.Sprint(uploadPart.Part)),
|
||||
s.Storage.Join(StorageTmp, upload.Id, fmt.Sprint(uploadPart.Part)),
|
||||
)
|
||||
if err != nil {
|
||||
c.AbortWithError(http.StatusInternalServerError, err)
|
||||
@ -72,7 +79,7 @@ func (s *Service) UploadPart(c *gin.Context) {
|
||||
}
|
||||
|
||||
c.JSON(http.StatusCreated, gin.H{
|
||||
"upload_id": uploadPart.UploadId,
|
||||
"upload_id": upload.Id,
|
||||
"part": uploadPart.Part,
|
||||
"size": w,
|
||||
"sha256": hex.EncodeToString(sha.Sum(nil)),
|
||||
@ -81,9 +88,12 @@ func (s *Service) UploadPart(c *gin.Context) {
|
||||
}
|
||||
|
||||
func (s *Service) UploadCancel(c *gin.Context) {
|
||||
upload_id := c.Param("upload_id")
|
||||
var upload UploadUri
|
||||
if c.BindUri(&upload) != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if err := s.Storage.Delete(StorageTmp, upload_id); err != nil {
|
||||
if err := s.Storage.Delete(StorageTmp, upload.Id); err != nil {
|
||||
c.AbortWithError(http.StatusNotFound, ErrUploadNotExists)
|
||||
return
|
||||
}
|
||||
@ -114,7 +124,7 @@ func (s *Service) UploadComplete(c *gin.Context) {
|
||||
func (s *Service) UploadInit() {
|
||||
upload := s.Gin.Group("/upload")
|
||||
upload.GET("/create", s.UploadCreate)
|
||||
upload.POST("/part", s.UploadPart)
|
||||
upload.POST("/part/:upload_id", s.UploadPart)
|
||||
upload.GET("/cancel/:upload_id", s.UploadCancel)
|
||||
upload.POST("/complete/:upload_id", s.UploadComplete)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user