2 Commits

Author SHA1 Message Date
392db01d40 update for latest micro
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2021-01-29 14:45:37 +03:00
b1a3401b9b fix double init error
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2021-01-26 10:41:20 +03:00
4 changed files with 40 additions and 15 deletions

2
go.mod
View File

@@ -5,5 +5,5 @@ go 1.15
require (
github.com/gabriel-vasile/mimetype v1.1.2
github.com/minio/minio-go/v7 v7.0.7
github.com/unistack-org/micro/v3 v3.1.8
github.com/unistack-org/micro/v3 v3.2.0
)

6
go.sum
View File

@@ -37,6 +37,7 @@ github.com/google/uuid v1.1.5 h1:kxhtnfFVi+rYdOALN0B3k9UT86zVJKfBimRaciULW4I=
github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA=
github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
@@ -89,8 +90,8 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/unistack-org/micro/v3 v3.1.8 h1:ma9tBX7h0QyByDZ+vrY3+kqJoy/Ro9vMx2iTLjrDaNI=
github.com/unistack-org/micro/v3 v3.1.8/go.mod h1:J8XxJj4Pqa3Ee0a4biRRtut7UwTlfBq8QRe+s4PKGS0=
github.com/unistack-org/micro/v3 v3.2.0 h1:1e6cFMHzHV+RjwwajwYJARpxQiEpnTCvV/2L9xeW4zc=
github.com/unistack-org/micro/v3 v3.2.0/go.mod h1:J8XxJj4Pqa3Ee0a4biRRtut7UwTlfBq8QRe+s4PKGS0=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
@@ -167,6 +168,7 @@ gopkg.in/ini.v1 v1.57.0 h1:9unxIsFcTt4I55uWluz+UmL95q4kdJ0buvQ1ZIqVQww=
gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

14
s3.go
View File

@@ -25,6 +25,7 @@ type s3Store struct {
opts store.Options
endpoint string
mopts *minio.Options
connected bool
}
func getBucket(ctx context.Context) string {
@@ -43,14 +44,17 @@ func NewStore(opts ...store.Option) store.Store {
}
func (s *s3Store) Connect(ctx context.Context) error {
if s.client == nil {
if s.connected {
return nil
}
client, err := minio.New(s.endpoint, s.mopts)
if err != nil {
return fmt.Errorf("Error connecting to store: %w", err)
}
s.client = client
}
s.connected = true
return nil
}
@@ -65,7 +69,7 @@ func (s *s3Store) Init(opts ...store.Option) error {
}
var akey, skey string
var endpoint string
endpoint := s.endpoint
if s.opts.Context != nil {
if v, ok := s.opts.Context.Value(accessKey{}).(string); ok && v != "" {
@@ -298,3 +302,7 @@ func (s *s3Store) List(ctx context.Context, opts ...store.ListOption) ([]string,
func (s *s3Store) String() string {
return "s3"
}
func (s *s3Store) Name() string {
return s.opts.Name
}

View File

@@ -5,6 +5,8 @@ import (
"context"
"os"
"testing"
"github.com/unistack-org/micro/v3"
)
func TestStore(t *testing.T) {
@@ -24,16 +26,29 @@ func TestStore(t *testing.T) {
t.Fatal(err)
}
if err := s.Init(); err != nil {
t.Fatalf("double init test failed: %v", err)
}
if err := s.Connect(ctx); err != nil {
t.Fatal(err)
}
if err := s.Connect(ctx); err != nil {
t.Fatalf("double connect test failed: %v", err)
}
defer func() {
if err := s.Disconnect(ctx); err != nil {
t.Fatal(err)
}
}()
svc := micro.NewService(micro.Stores(s))
if err := svc.Init(); err != nil {
t.Fatalf("service init failed: %v", err)
}
val := []byte("test")
key := "key"