diff --git a/handler_upload_video.go b/handler_upload_video.go index d5d7562..db0b65a 100644 --- a/handler_upload_video.go +++ b/handler_upload_video.go @@ -163,7 +163,7 @@ func (cfg *apiConfig) handlerUploadVideo(w http.ResponseWriter, r *http.Request) return } - url := fmt.Sprintf("%s,%s", cfg.s3Bucket, fileName) + url := fmt.Sprintf("%s/%s", cfg.s3CfDistribution, fileName) video.VideoURL = &url @@ -179,11 +179,5 @@ func (cfg *apiConfig) handlerUploadVideo(w http.ResponseWriter, r *http.Request) return } - vid, err := cfg.dbVideoToSignedVideo(video) - if err != nil { - respondWithError(w, http.StatusInternalServerError, "Couldn't convert video to signed video", err) - return - } - - respondWithJSON(w, http.StatusOK, vid) + respondWithJSON(w, http.StatusOK, video) } diff --git a/handler_video_meta.go b/handler_video_meta.go index 6f494aa..3266038 100644 --- a/handler_video_meta.go +++ b/handler_video_meta.go @@ -95,12 +95,7 @@ func (cfg *apiConfig) handlerVideoGet(w http.ResponseWriter, r *http.Request) { return } - vid, err := cfg.dbVideoToSignedVideo(video) - if err != nil { - respondWithError(w, http.StatusInternalServerError, "Couldn't convert video to signed video", err) - return - } - respondWithJSON(w, http.StatusOK, vid) + respondWithJSON(w, http.StatusOK, video) } func (cfg *apiConfig) handlerVideosRetrieve(w http.ResponseWriter, r *http.Request) { @@ -121,19 +116,5 @@ func (cfg *apiConfig) handlerVideosRetrieve(w http.ResponseWriter, r *http.Reque return } - var vids []database.Video - if len(videos) > 0 { - for _, video := range videos { - vid, err := cfg.dbVideoToSignedVideo(video) - if err != nil { - respondWithError(w, http.StatusInternalServerError, "Couldn't convert video to signed video", err) - return - } - vids = append(vids, vid) - } - } else { - vids = make([]database.Video, 0) - } - - respondWithJSON(w, http.StatusOK, vids) + respondWithJSON(w, http.StatusOK, videos) } diff --git a/main.go b/main.go index afb34a8..4f66458 100644 --- a/main.go +++ b/main.go @@ -4,19 +4,14 @@ import ( "bytes" "context" "encoding/json" - "errors" "fmt" - "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/service/s3" + "github.com/bootdotdev/learn-file-storage-s3-golang-starter/internal/database" "log" "net/http" "os" "os/exec" - "strings" - "time" - - "github.com/bootdotdev/learn-file-storage-s3-golang-starter/internal/database" "github.com/joho/godotenv" _ "github.com/lib/pq" @@ -84,37 +79,6 @@ func processVideoForFastStart(filePath string) (string, error) { return newName, nil } -func generatePresignedURL(s3Client *s3.Client, bucket, key string, expireTime time.Duration) (string, error) { - presignedClient := s3.NewPresignClient(s3Client) - obj, err := presignedClient.PresignGetObject(context.Background(), &s3.GetObjectInput{ - Bucket: aws.String(bucket), - Key: aws.String(key), - }, s3.WithPresignExpires(expireTime)) - if err != nil { - return "", err - } - return obj.URL, nil -} - -func (cfg *apiConfig) dbVideoToSignedVideo(video database.Video) (database.Video, error) { - - if video.VideoURL == nil { - return video, nil - } - - pieces := strings.Split(*video.VideoURL, ",") - if len(pieces) < 2 { - return database.Video{}, errors.New("Invalid video URL") - } - bucket, key := pieces[0], pieces[1] - url, err := generatePresignedURL(cfg.s3Client, bucket, key, time.Second*600) - if err != nil { - return database.Video{}, err - } - video.VideoURL = &url - return video, nil -} - func main() { godotenv.Load(".env")