Paul Pan
26a81652b3
1. add consumer 2. add createVersion 3. add upload 4. fix runner 5. add rejudge Co-authored-by: cxy004 <cxy004@qq.com> Co-authored-by: wzt <w.zhongtao@qq.com>
42 lines
941 B
Go
42 lines
941 B
Go
package storage
|
|
|
|
import (
|
|
"github.com/WHUPRJ/woj-server/internal/e"
|
|
"github.com/WHUPRJ/woj-server/internal/global"
|
|
"github.com/minio/minio-go/v7"
|
|
"github.com/minio/minio-go/v7/pkg/credentials"
|
|
"go.uber.org/zap"
|
|
"time"
|
|
)
|
|
|
|
var _ Service = (*service)(nil)
|
|
|
|
type Service interface {
|
|
Upload(objectName string, expiry time.Duration) (string, e.Status)
|
|
Get(objectName string, expiry time.Duration) (string, e.Status)
|
|
}
|
|
|
|
type service struct {
|
|
log *zap.Logger
|
|
client *minio.Client
|
|
bucket string
|
|
}
|
|
|
|
func NewService(g *global.Global) Service {
|
|
minioClient, err := minio.New(g.Conf.Storage.Endpoint, &minio.Options{
|
|
Creds: credentials.NewStaticV4(g.Conf.Storage.AccessKey, g.Conf.Storage.SecretKey, ""),
|
|
Secure: g.Conf.Storage.UseSSL,
|
|
})
|
|
|
|
if err != nil {
|
|
g.Log.Fatal("failed to create minio client", zap.Error(err))
|
|
return nil
|
|
}
|
|
|
|
return &service{
|
|
log: g.Log,
|
|
client: minioClient,
|
|
bucket: g.Conf.Storage.Bucket,
|
|
}
|
|
}
|