Files
nysoure/server/storage/s3.go
2025-05-11 20:32:14 +08:00

53 lines
1.1 KiB
Go

package storage
import (
"encoding/json"
"errors"
)
type S3Storage struct {
EndPoint string
AccessKeyID string
SecretAccessKey string
BucketName string
}
func (s *S3Storage) Upload(filePath string) (string, error) {
// TODO: Implement S3 upload logic here
return "", nil
}
func (s *S3Storage) Download(storageKey string) (string, error) {
// TODO: Implement S3 download logic here
return "", nil
}
func (s *S3Storage) Delete(storageKey string) error {
// TODO: Implement S3 delete logic here
return nil
}
func (s *S3Storage) ToString() string {
data, _ := json.Marshal(s)
return string(data)
}
func (s *S3Storage) FromString(config string) error {
var s3Config S3Storage
if err := json.Unmarshal([]byte(config), &s3Config); err != nil {
return err
}
s.EndPoint = s3Config.EndPoint
s.AccessKeyID = s3Config.AccessKeyID
s.SecretAccessKey = s3Config.SecretAccessKey
s.BucketName = s3Config.BucketName
if s.EndPoint == "" || s.AccessKeyID == "" || s.SecretAccessKey == "" || s.BucketName == "" {
return errors.New("invalid S3 configuration")
}
return nil
}
func (s *S3Storage) Type() string {
return "s3"
}