diff --git a/cmd/validator/main.go b/cmd/validator/main.go index d2bed00..977fba4 100644 --- a/cmd/validator/main.go +++ b/cmd/validator/main.go @@ -1,12 +1,15 @@ package main import ( + "bytes" "context" "fmt" "gitea.pena/PenaSide/common/mongo" "gitea.pena/PenaSide/common/validate" "gitea.pena/PenaSide/heruvym/internal/initialize" + minioDal "gitea.pena/PenaSide/heruvym/internal/repository/minio" "github.com/minio/minio-go/v7" + "github.com/pioz/faker" "log" "os" "strconv" @@ -123,25 +126,33 @@ func validateS3(cfg initialize.Config) error { client, err := initialize.Minio(cfg) if err != nil { - return err + return fmt.Errorf("error connect s3 in validate: %w", err) } - bucket := "validate-test" + objectName := faker.String() + content := []byte(faker.String()) + contentType := "text/plain" - exist, err := client.BucketExists(ctx, bucket) + exist, err := client.BucketExists(ctx, minioDal.Bucket) if err != nil { - return err + return fmt.Errorf("error find s3 bucket in validate: %w", err) } + // не создаем бакет так как бакет могут не дать создать if !exist { - err := client.MakeBucket(ctx, bucket, minio.MakeBucketOptions{}) - if err != nil { - return err - } + return fmt.Errorf("bucket does not exist") } - err = client.RemoveBucket(ctx, bucket) + + _, err = client.PutObject(ctx, minioDal.Bucket, objectName, + bytes.NewReader(content), int64(len(content)), + minio.PutObjectOptions{ContentType: contentType}) if err != nil { - return err + return fmt.Errorf("error create test object: %w", err) + } + + err = client.RemoveObject(ctx, minioDal.Bucket, objectName, minio.RemoveObjectOptions{}) + if err != nil { + return fmt.Errorf("error remove test object: %w", err) } return nil diff --git a/go.mod b/go.mod index d374529..1e0feda 100644 --- a/go.mod +++ b/go.mod @@ -49,14 +49,15 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.7.0 // indirect golang.org/x/net v0.8.0 // indirect - golang.org/x/sync v0.1.0 // indirect + golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.14.0 // indirect - golang.org/x/text v0.8.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect ) require ( gitea.pena/PenaSide/common v0.0.0-20241202085823-f2893fbf9772 + github.com/pioz/faker v1.7.3 github.com/stretchr/testify v1.8.4 github.com/themakers/bdd v0.0.0-20210316111417-6b1dfe326f33 ) diff --git a/go.sum b/go.sum index 9223932..52a5305 100644 --- a/go.sum +++ b/go.sum @@ -54,8 +54,6 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -gitea.pena/PenaSide/common v0.0.0-20241128160655-fe730a08b5f1 h1:w1AAxrlZGmxUI9NAa/0TYsc6sqWWF9yAzQaLL/KxwrM= -gitea.pena/PenaSide/common v0.0.0-20241128160655-fe730a08b5f1/go.mod h1:l71j3W1yROhOSfjWZ6wcMuzjBR37gu2ZTcXsorEJoiw= gitea.pena/PenaSide/common v0.0.0-20241202085823-f2893fbf9772 h1:RklzzwGnw+TsPQZH/Bzb6UXGRmv22iQHf6PqbTKNCyM= gitea.pena/PenaSide/common v0.0.0-20241202085823-f2893fbf9772/go.mod h1:l71j3W1yROhOSfjWZ6wcMuzjBR37gu2ZTcXsorEJoiw= gitea.pena/PenaSide/hlog v0.0.0-20241125221102-a54c29c002a9 h1:tBkXWNIt8icmkMMnq8MA421RWkUy4OZh5P7C3q8uCu4= @@ -367,6 +365,8 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= +github.com/pioz/faker v1.7.3 h1:Tez8Emuq0UN+/d6mo3a9m/9ZZ/zdfJk0c5RtRatrceM= +github.com/pioz/faker v1.7.3/go.mod h1:xSpay5w/oz1a6+ww0M3vfpe40pSIykeUPeWEc3TvVlc= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -619,8 +619,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220513210516-0976fa681c29/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -719,8 +719,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff --git a/internal/repository/minio/minio.go b/internal/repository/minio/minio.go index db9c126..a0c5ed5 100644 --- a/internal/repository/minio/minio.go +++ b/internal/repository/minio/minio.go @@ -21,7 +21,7 @@ type BlobStore struct { } const ( - bucket = "3c580be9-cf31f296-d055-49cf-b39e-30c7959dc17b" + Bucket = "3c580be9-cf31f296-d055-49cf-b39e-30c7959dc17b" // export for validate folder = "angelsight" ) @@ -31,13 +31,13 @@ func New(ctx context.Context, deps Deps) (*BlobStore, error) { store: deps.Store, } - bucketExists, err := bStore.store.BucketExists(ctx, bucket) + bucketExists, err := bStore.store.BucketExists(ctx, Bucket) if err != nil { return nil, err } if !bucketExists { - if err := bStore.store.MakeBucket(ctx, bucket, minio.MakeBucketOptions{}); err != nil { + if err := bStore.store.MakeBucket(ctx, Bucket, minio.MakeBucketOptions{}); err != nil { return nil, err } } @@ -50,7 +50,7 @@ func (bs *BlobStore) PutFile( filename string, reader io.Reader, size int64) error { - info, err := bs.store.PutObject(ctx, bucket, folder+"/"+filename, reader, size, minio.PutObjectOptions{ + info, err := bs.store.PutObject(ctx, Bucket, folder+"/"+filename, reader, size, minio.PutObjectOptions{ //UserMetadata: nil, //UserTags: nil, //Progress: nil, @@ -81,7 +81,7 @@ func (bs *BlobStore) PutFile( } func (bs *BlobStore) DeleteFile(ctx context.Context, id string) error { - if err := bs.store.RemoveObject(ctx, bucket, folder+"/"+id, minio.RemoveObjectOptions{ + if err := bs.store.RemoveObject(ctx, Bucket, folder+"/"+id, minio.RemoveObjectOptions{ //GovernanceBypass: false, //VersionID: "", //Internal: AdvancedRemoveOptions @@ -93,7 +93,7 @@ func (bs *BlobStore) DeleteFile(ctx context.Context, id string) error { } func (bs *BlobStore) FileExists(ctx context.Context, filename string) (bool, error) { - _, err := bs.store.StatObject(ctx, bucket, folder+"/"+filename, minio.StatObjectOptions{}) + _, err := bs.store.StatObject(ctx, Bucket, folder+"/"+filename, minio.StatObjectOptions{}) if err != nil { if minio.ToErrorResponse(err).StatusCode == http.StatusNotFound { return false, nil