From 7e76ee63e542c34aad065dd1b6cd61066486ddc0 Mon Sep 17 00:00:00 2001 From: Jacob Wrenn Date: Thu, 16 Mar 2023 18:07:42 +0000 Subject: [PATCH] S3 headers (#2830) * change s3 headers for playlist files * clean up code --------- Co-authored-by: Gabe Kangas --- core/storageproviders/s3Storage.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/core/storageproviders/s3Storage.go b/core/storageproviders/s3Storage.go index 09d82f871..1495d50d2 100644 --- a/core/storageproviders/s3Storage.go +++ b/core/storageproviders/s3Storage.go @@ -5,6 +5,7 @@ import ( "fmt" "net/http" "os" + "path" "path/filepath" "strings" "time" @@ -149,6 +150,7 @@ func (s *S3Storage) Save(filePath string, retryCount int) (string, error) { maxAgeSeconds := utils.GetCacheDurationSecondsForPath(filePath) cacheControlHeader := fmt.Sprintf("max-age=%d", maxAgeSeconds) + uploadInput := &s3manager.UploadInput{ Bucket: aws.String(s.s3Bucket), // Bucket to be used Key: aws.String(remotePath), // Name of the file to be saved @@ -156,6 +158,14 @@ func (s *S3Storage) Save(filePath string, retryCount int) (string, error) { CacheControl: &cacheControlHeader, } + if path.Ext(filePath) == ".m3u8" { + noCacheHeader := "no-cache, no-store, must-revalidate" + contentType := "application/x-mpegURL" + + uploadInput.CacheControl = &noCacheHeader + uploadInput.ContentType = &contentType + } + if s.s3ACL != "" { uploadInput.ACL = aws.String(s.s3ACL) } else {