优化结构

This commit is contained in:
Yvan
2026-08-22 12:13:16 +08:00
parent d987244d0e
commit b27a66e9d3
200 changed files with 1794 additions and 1715 deletions
+10 -9
View File
@@ -4,16 +4,17 @@ import (
"context"
"fmt"
"io"
"kra/internal/biz/system"
"path"
"strings"
"kra/internal/conf"
"github.com/aws/aws-sdk-go-v2/aws"
awsconfig "github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/credentials"
"github.com/aws/aws-sdk-go-v2/feature/s3/manager"
"github.com/aws/aws-sdk-go-v2/service/s3"
"kra/internal/biz"
"kra/internal/conf"
)
type awsStorage struct {
@@ -21,7 +22,7 @@ type awsStorage struct {
bucket, baseURL, prefix string
}
func newAWSStorage(provider string, config *conf.AdminBackend_ObjectStore) (biz.FileStorage, error) {
func newAWSStorage(provider string, config *conf.AdminBackend_ObjectStore) (system.FileStorage, error) {
if config == nil || config.Bucket == "" || config.AccessKey == "" || config.SecretKey == "" {
return nil, fmt.Errorf("%s storage configuration is incomplete", provider)
}
@@ -68,12 +69,12 @@ func (s *awsStorage) key(name string) string {
func (s *awsStorage) unkey(key string) string {
return strings.TrimPrefix(strings.TrimPrefix(key, s.prefix), "/")
}
func (s *awsStorage) file(key string, size int64) *biz.StoredFile {
func (s *awsStorage) file(key string, size int64) *system.StoredFile {
name := s.unkey(key)
url := s.baseURL + "/" + key
return &biz.StoredFile{Name: path.Base(name), Path: name, URL: url, Size: size}
return &system.StoredFile{Name: path.Base(name), Path: name, URL: url, Size: size}
}
func (s *awsStorage) Put(ctx context.Context, name string, reader io.Reader) (*biz.StoredFile, error) {
func (s *awsStorage) Put(ctx context.Context, name string, reader io.Reader) (*system.StoredFile, error) {
key := s.key(name)
result, err := manager.NewUploader(s.client).Upload(ctx, &s3.PutObjectInput{Bucket: aws.String(s.bucket), Key: aws.String(key), Body: reader})
if err != nil {
@@ -101,7 +102,7 @@ func (s *awsStorage) Delete(ctx context.Context, name string) error {
_, err := s.client.DeleteObject(ctx, &s3.DeleteObjectInput{Bucket: aws.String(s.bucket), Key: aws.String(s.key(name))})
return err
}
func (s *awsStorage) Compose(ctx context.Context, names []string, destination string) (*biz.StoredFile, string, error) {
func (s *awsStorage) Compose(ctx context.Context, names []string, destination string) (*system.StoredFile, string, error) {
return composeFiles(ctx, s, names, destination)
}
func (s *awsStorage) DeletePrefix(ctx context.Context, prefix string) error {
@@ -120,7 +121,7 @@ func (s *awsStorage) DeletePrefix(ctx context.Context, prefix string) error {
}
}
}
func (s *awsStorage) List(ctx context.Context, prefix, cursor string, limit int) ([]*biz.StoredFile, string, bool, error) {
func (s *awsStorage) List(ctx context.Context, prefix, cursor string, limit int) ([]*system.StoredFile, string, bool, error) {
if limit <= 0 {
limit = 100
}
@@ -132,7 +133,7 @@ func (s *awsStorage) List(ctx context.Context, prefix, cursor string, limit int)
if err != nil {
return nil, "", false, err
}
items := make([]*biz.StoredFile, 0, len(result.Contents))
items := make([]*system.StoredFile, 0, len(result.Contents))
for _, object := range result.Contents {
if object.Key == nil {
continue