🐛 Bug fixes on fragment based uploading
This commit is contained in:
		| @@ -23,8 +23,6 @@ func openAttachment(c *fiber.Ctx) error { | ||||
| 	metadata, err := services.GetAttachmentByRID(id) | ||||
| 	if err != nil { | ||||
| 		return fiber.NewError(fiber.StatusNotFound) | ||||
| 	} else if !metadata.IsUploaded { | ||||
| 		return fiber.NewError(fiber.StatusNotFound, "file is in uploading progress, please wait until all chunk uploaded") | ||||
| 	} | ||||
|  | ||||
| 	destMap := viper.GetStringMap(fmt.Sprintf("destinations.%d", metadata.Destination)) | ||||
| @@ -91,7 +89,6 @@ func updateAttachmentMeta(c *fiber.Ctx) error { | ||||
|  | ||||
| 	var data struct { | ||||
| 		Alternative *string         `json:"alt"` | ||||
| 		Thumbnail   *string         `json:"thumbnail"` | ||||
| 		Metadata    *map[string]any `json:"metadata"` | ||||
| 		IsIndexable *bool           `json:"is_indexable"` | ||||
| 	} | ||||
| @@ -108,9 +105,6 @@ func updateAttachmentMeta(c *fiber.Ctx) error { | ||||
| 	if data.Alternative != nil { | ||||
| 		attachment.Alternative = *data.Alternative | ||||
| 	} | ||||
| 	if data.Thumbnail != nil { | ||||
| 		attachment.Thumbnail = *data.Thumbnail | ||||
| 	} | ||||
| 	if data.Metadata != nil { | ||||
| 		attachment.Usermeta = *data.Metadata | ||||
| 	} | ||||
|   | ||||
| @@ -48,7 +48,6 @@ func createAttachmentDirectly(c *fiber.Ctx) error { | ||||
| 		MimeType:    c.FormValue("mimetype"), | ||||
| 		Usermeta:    usermeta, | ||||
| 		IsAnalyzed:  false, | ||||
| 		IsUploaded:  true, | ||||
| 		Destination: models.AttachmentDstTemporary, | ||||
| 		Pool:        &pool, | ||||
| 		PoolID:      &pool.ID, | ||||
|   | ||||
| @@ -99,9 +99,7 @@ func ScanUnanalyzedFileFromDatabase() { | ||||
| } | ||||
|  | ||||
| func AnalyzeAttachment(file models.Attachment) error { | ||||
| 	if !file.IsUploaded { | ||||
| 		return fmt.Errorf("file isn't finish multipart upload") | ||||
| 	} else if file.Destination != models.AttachmentDstTemporary { | ||||
| 	if file.Destination != models.AttachmentDstTemporary { | ||||
| 		return fmt.Errorf("attachment isn't in temporary storage, unable to analyze") | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -65,6 +65,7 @@ func MergeFileChunks(meta models.AttachmentFragment, arrange []string) (models.A | ||||
| 	PublishAnalyzeTask(attachment) | ||||
|  | ||||
| 	// Clean up: remove chunk files | ||||
| 	go DeleteFragment(meta) | ||||
| 	for _, chunk := range arrange { | ||||
| 		chunkPath := filepath.Join(dest.Path, fmt.Sprintf("%s.part%s", meta.Uuid, chunk)) | ||||
| 		if err := os.Remove(chunkPath); err != nil { | ||||
|   | ||||
| @@ -79,8 +79,7 @@ func RunScheduleDeletionTask() { | ||||
| 	database.C.Where("cleaned_at IS NOT NULL").Delete(&models.Attachment{}) | ||||
| } | ||||
|  | ||||
| func DeleteFile(meta models.Attachment) error { | ||||
| 	if !meta.IsUploaded { | ||||
| func DeleteFragment(meta models.AttachmentFragment) error { | ||||
| 	destMap := viper.GetStringMap("destinations.0") | ||||
| 	var dest models.LocalDestination | ||||
| 	rawDest, _ := jsoniter.Marshal(destMap) | ||||
| @@ -94,6 +93,7 @@ func DeleteFile(meta models.Attachment) error { | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func DeleteFile(meta models.Attachment) error { | ||||
| 	destMap := viper.GetStringMap(fmt.Sprintf("destinations.%d", meta.Destination)) | ||||
|  | ||||
| 	var dest models.BaseDestination | ||||
|   | ||||
		Reference in New Issue
	
	Block a user