|
|
|
@ -5,6 +5,7 @@ import (
@@ -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) {
@@ -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) {
@@ -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 { |
|
|
|
|