diff --git a/application/services/job_service.go b/application/services/job_service.go index 8e8b4f2..981d804 100644 --- a/application/services/job_service.go +++ b/application/services/job_service.go @@ -90,6 +90,7 @@ func (j *JobService) performUpload() error { videoUpload := NewVideoUpload() videoUpload.OutputBucket = os.Getenv("outputBucketName") videoUpload.VideoPath = os.Getenv("localStoragePath") + "/" + j.VideoService.Video.ID + videoUpload.Prefix = j.VideoService.Video.Prefix concurrency, _ := strconv.Atoi(os.Getenv("CONCURRENCY_UPLOAD")) doneUpload := make(chan string) diff --git a/application/services/upload_manager.go b/application/services/upload_manager.go index 9434154..0c6fe93 100644 --- a/application/services/upload_manager.go +++ b/application/services/upload_manager.go @@ -13,6 +13,7 @@ import ( type VideoUpload struct { Paths []string + Prefix string VideoPath string OutputBucket string Errors []string @@ -29,7 +30,7 @@ func (vu *VideoUpload) UploadObject(objectPath string, client *storage.Client, c // [0] caminho/x/b/ // [1] arquivo.mp4 path := strings.Split(objectPath, os.Getenv("localStoragePath")+"/") - + f, err := os.Open(objectPath) if err != nil { return err @@ -37,7 +38,7 @@ func (vu *VideoUpload) UploadObject(objectPath string, client *storage.Client, c defer f.Close() - wc := client.Bucket(vu.OutputBucket).Object(path[1]).NewWriter(ctx) + wc := client.Bucket(vu.OutputBucket).Object(vu.Prefix + "/" +path[1]).NewWriter(ctx) wc.ACL = []storage.ACLRule{{Entity: storage.AllUsers, Role: storage.RoleReader}} if _, err = io.Copy(wc, f); err != nil { diff --git a/domain/video.go b/domain/video.go index 6fa1795..cd34d73 100644 --- a/domain/video.go +++ b/domain/video.go @@ -8,6 +8,7 @@ import ( type Video struct { ID string `json:"encoded_video_folder" valid:"uuid" gorm:"type:uuid;primary_key"` ResourceID string `json:"resource_id" valid:"notnull" gorm:"type:varchar(255)"` + Prefix string `json:"prefix" valid:"optional" gorm:"type:varchar(255)"` FilePath string `json:"file_path" valid:"notnull" gorm:"type:varchar(255)"` CreatedAt time.Time `json:"-" valid:"-"` Jobs []*Job `json:"-" valid:"-" gorm:"ForeignKey:VideoID"`