视频保存
This commit is contained in:
@@ -5,6 +5,7 @@ package storage
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/echochat/backend/config"
|
||||
"github.com/minio/minio-go/v7"
|
||||
@@ -61,3 +62,28 @@ func ensureBucketPublicRead(ctx context.Context, client *minio.Client, bucket st
|
||||
}`, bucket)
|
||||
return client.SetBucketPolicy(ctx, bucket, policy)
|
||||
}
|
||||
|
||||
func BuildObjectURL(cfg *config.MinioConfig, objectName string) string {
|
||||
objectName = strings.TrimLeft(strings.TrimSpace(objectName), "/")
|
||||
if cfg == nil {
|
||||
return objectName
|
||||
}
|
||||
bucket := strings.Trim(strings.TrimSpace(cfg.Bucket), "/")
|
||||
if base := strings.TrimRight(strings.TrimSpace(cfg.PublicBaseURL), "/"); base != "" {
|
||||
if bucket != "" && !strings.HasSuffix(base, "/"+bucket) {
|
||||
base = fmt.Sprintf("%s/%s", base, bucket)
|
||||
}
|
||||
if objectName == "" {
|
||||
return base
|
||||
}
|
||||
return fmt.Sprintf("%s/%s", base, objectName)
|
||||
}
|
||||
scheme := "http"
|
||||
if cfg.UseSSL {
|
||||
scheme = "https"
|
||||
}
|
||||
if objectName == "" {
|
||||
return fmt.Sprintf("%s://%s/%s", scheme, cfg.Endpoint, bucket)
|
||||
}
|
||||
return fmt.Sprintf("%s://%s/%s/%s", scheme, cfg.Endpoint, bucket, objectName)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user