[feature] S3: add config flag to proxy S3 media (#1014)

* S3: add config value "proxy" for not redirecting

Signed-off-by: Mara Sophie Grosch <littlefox@lf-net.org>

* S3: document new config value "proxy"

* S3: add new config value "proxy" to test scripts

Signed-off-by: Mara Sophie Grosch <littlefox@lf-net.org>
This commit is contained in:
Mara Sophie Grosch
2022-11-11 12:03:18 +01:00
committed by GitHub
parent 3ce0e33f99
commit 948e90b95a
10 changed files with 64 additions and 15 deletions

View File

@@ -34,12 +34,14 @@ import (
type S3 struct {
mc *minio.Client
bucket string
proxy bool
}
func NewS3(mc *minio.Client, bucket string) *S3 {
func NewS3(mc *minio.Client, bucket string, proxy bool) *S3 {
return &S3{
mc: mc,
bucket: bucket,
proxy: proxy,
}
}
@@ -83,6 +85,10 @@ func (s *S3) Delete(ctx context.Context, key string) error {
}
func (s *S3) URL(ctx context.Context, key string) *url.URL {
if s.proxy {
return nil
}
// it's safe to ignore the error here, as we just fall back to fetching the
// file if the url request fails
url, _ := s.mc.PresignedGetObject(ctx, s.bucket, key, time.Hour, url.Values{

View File

@@ -59,7 +59,11 @@ func AutoConfig() (Driver, error) {
if err != nil {
return nil, fmt.Errorf("creating minio client: %w", err)
}
return NewS3(mc, config.GetStorageS3BucketName()), nil
return NewS3(
mc,
config.GetStorageS3BucketName(),
config.GetStorageS3Proxy(),
), nil
case "local":
basePath := config.GetStorageLocalBasePath()
disk, err := storage.OpenDisk(basePath, &storage.DiskConfig{