mirror of
https://github.com/pagefaultgames/rogueserver.git
synced 2025-05-23 03:16:17 +08:00
Reuse S3 client
This commit is contained in:
parent
add5fbc326
commit
f6e35d3c7a
14
db/db.go
14
db/db.go
@ -18,13 +18,18 @@
|
|||||||
package db
|
package db
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/aws/aws-sdk-go-v2/config"
|
||||||
|
"github.com/aws/aws-sdk-go-v2/service/s3"
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
)
|
)
|
||||||
|
|
||||||
var handle *sql.DB
|
var handle *sql.DB
|
||||||
|
var s3client *s3.Client
|
||||||
|
|
||||||
func Init(username, password, protocol, address, database string) error {
|
func Init(username, password, protocol, address, database string) error {
|
||||||
var err error
|
var err error
|
||||||
@ -34,6 +39,15 @@ func Init(username, password, protocol, address, database string) error {
|
|||||||
return fmt.Errorf("failed to open database connection: %s", err)
|
return fmt.Errorf("failed to open database connection: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if os.Getenv("AWS_ENDPOINT_URL_S3") != "" {
|
||||||
|
cfg, err := config.LoadDefaultConfig(context.TODO())
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
s3client = s3.NewFromConfig(cfg)
|
||||||
|
}
|
||||||
|
|
||||||
/*conns := 64
|
/*conns := 64
|
||||||
|
|
||||||
handle.SetMaxOpenConns(conns)
|
handle.SetMaxOpenConns(conns)
|
||||||
|
@ -28,7 +28,6 @@ import (
|
|||||||
"github.com/pagefaultgames/rogueserver/defs"
|
"github.com/pagefaultgames/rogueserver/defs"
|
||||||
|
|
||||||
"github.com/aws/aws-sdk-go-v2/aws"
|
"github.com/aws/aws-sdk-go-v2/aws"
|
||||||
"github.com/aws/aws-sdk-go-v2/config"
|
|
||||||
"github.com/aws/aws-sdk-go-v2/service/s3"
|
"github.com/aws/aws-sdk-go-v2/service/s3"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -110,12 +109,6 @@ func StoreSystemSaveData(uuid []byte, data defs.SystemSaveData) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func StoreSystemSaveDataS3(uuid []byte, data defs.SystemSaveData) error {
|
func StoreSystemSaveDataS3(uuid []byte, data defs.SystemSaveData) error {
|
||||||
cfg, _ := config.LoadDefaultConfig(context.TODO())
|
|
||||||
|
|
||||||
client := s3.NewFromConfig(cfg, func(o *s3.Options) {
|
|
||||||
o.BaseEndpoint = aws.String(os.Getenv("AWS_ENDPOINT_URL_S3"))
|
|
||||||
})
|
|
||||||
|
|
||||||
username, err := FetchUsernameFromUUID(uuid)
|
username, err := FetchUsernameFromUUID(uuid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -128,7 +121,7 @@ func StoreSystemSaveDataS3(uuid []byte, data defs.SystemSaveData) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = client.PutObject(context.Background(), &s3.PutObjectInput{
|
_, err = s3client.PutObject(context.Background(), &s3.PutObjectInput{
|
||||||
Bucket: aws.String(os.Getenv("S3_SYSTEM_BUCKET_NAME")),
|
Bucket: aws.String(os.Getenv("S3_SYSTEM_BUCKET_NAME")),
|
||||||
Key: aws.String(username),
|
Key: aws.String(username),
|
||||||
Body: buf,
|
Body: buf,
|
||||||
@ -235,19 +228,10 @@ func GetSystemSaveFromS3(uuid []byte) (defs.SystemSaveData, error) {
|
|||||||
return system, err
|
return system, err
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg, err := config.LoadDefaultConfig(context.TODO())
|
resp, err := s3client.GetObject(context.TODO(), &s3.GetObjectInput{
|
||||||
if err != nil {
|
|
||||||
return system, err
|
|
||||||
}
|
|
||||||
|
|
||||||
client := s3.NewFromConfig(cfg)
|
|
||||||
|
|
||||||
s3Object := s3.GetObjectInput{
|
|
||||||
Bucket: aws.String(os.Getenv("S3_SYSTEM_BUCKET_NAME")),
|
Bucket: aws.String(os.Getenv("S3_SYSTEM_BUCKET_NAME")),
|
||||||
Key: aws.String(username),
|
Key: aws.String(username),
|
||||||
}
|
})
|
||||||
|
|
||||||
resp, err := client.GetObject(context.TODO(), &s3Object)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return system, err
|
return system, err
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user