mirror of
https://github.com/wgh136/nysoure.git
synced 2025-09-27 20:27:23 +00:00
53 lines
1.1 KiB
Go
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"
|
|
}
|