diff --git a/app.go b/app.go index 294c306..2e1d1a7 100644 --- a/app.go +++ b/app.go @@ -25,7 +25,7 @@ import ( type ( app struct { log *zap.Logger - pool pool.Pool + pool *pool.Pool cfg *viper.Viper auxiliaryLog logger.Logger webServer *fasthttp.Server diff --git a/downloader/download.go b/downloader/download.go index da09223..3599119 100644 --- a/downloader/download.go +++ b/downloader/download.go @@ -84,7 +84,7 @@ func readContentType(maxSize uint64, rInit func(uint64) (io.Reader, error)) (str return http.DetectContentType(buf), buf, err // to not lose io.EOF } -func (r request) receiveFile(clnt pool.Object, objectAddress *address.Address) { +func (r request) receiveFile(clnt *pool.Pool, objectAddress *address.Address) { var ( err error dis = "inline" @@ -229,7 +229,7 @@ func (r *request) handleNeoFSErr(err error, start time.Time) { // Downloader is a download request handler. type Downloader struct { log *zap.Logger - pool pool.Pool + pool *pool.Pool settings Settings } @@ -238,7 +238,7 @@ type Settings struct { } // New creates an instance of Downloader using specified options. -func New(log *zap.Logger, settings Settings, conns pool.Pool) (*Downloader, error) { +func New(log *zap.Logger, settings Settings, conns *pool.Pool) (*Downloader, error) { var err error d := &Downloader{log: log, pool: conns, settings: settings} if err != nil { @@ -261,7 +261,7 @@ func (d *Downloader) DownloadByAddress(c *fasthttp.RequestCtx) { // byAddress is wrapper for function (e.g. request.headObject, request.receiveFile) that // prepares request and object address to it. -func (d *Downloader) byAddress(c *fasthttp.RequestCtx, f func(request, pool.Object, *address.Address)) { +func (d *Downloader) byAddress(c *fasthttp.RequestCtx, f func(request, *pool.Pool, *address.Address)) { var ( addr = address.NewAddress() idCnr, _ = c.UserValue("cid").(string) @@ -284,7 +284,7 @@ func (d *Downloader) DownloadByAttribute(c *fasthttp.RequestCtx) { } // byAttribute is wrapper similar to byAddress. -func (d *Downloader) byAttribute(c *fasthttp.RequestCtx, f func(request, pool.Object, *address.Address)) { +func (d *Downloader) byAttribute(c *fasthttp.RequestCtx, f func(request, *pool.Pool, *address.Address)) { var ( httpStatus = fasthttp.StatusBadRequest scid, _ = c.UserValue("cid").(string) diff --git a/downloader/head.go b/downloader/head.go index 620d15d..ddcc770 100644 --- a/downloader/head.go +++ b/downloader/head.go @@ -25,7 +25,7 @@ const ( hdrContainerID = "X-Container-Id" ) -func (r request) headObject(clnt pool.Object, objectAddress *address.Address) { +func (r request) headObject(clnt *pool.Pool, objectAddress *address.Address) { var start = time.Now() if err := tokens.StoreBearerToken(r.RequestCtx); err != nil { r.log.Error("could not fetch and store bearer token", zap.Error(err)) diff --git a/go.mod b/go.mod index dcb8245..65c4c71 100644 --- a/go.mod +++ b/go.mod @@ -9,8 +9,8 @@ require ( github.com/gorilla/mux v1.8.0 // indirect github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect github.com/nspcc-dev/neo-go v0.98.0 - github.com/nspcc-dev/neofs-api-go/v2 v2.11.2-0.20220302134950-d065453bd0a7 - github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.2 + github.com/nspcc-dev/neofs-api-go/v2 v2.12.1 + github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.3 github.com/prometheus/client_golang v1.11.0 github.com/prometheus/common v0.29.0 github.com/prometheus/procfs v0.7.1 // indirect diff --git a/go.sum b/go.sum index d4f79dd..ab2b770 100644 --- a/go.sum +++ b/go.sum @@ -589,15 +589,15 @@ github.com/nspcc-dev/neo-go v0.73.1-pre.0.20200303142215-f5a1b928ce09/go.mod h1: github.com/nspcc-dev/neo-go v0.98.0 h1:yyW4sgY88/pLf0949qmgfkQXzRKC3CI/WyhqXNnwMd8= github.com/nspcc-dev/neo-go v0.98.0/go.mod h1:E3cc1x6RXSXrJb2nDWXTXjnXk3rIqVN8YdFyWv+FrqM= github.com/nspcc-dev/neofs-api-go/v2 v2.11.0-pre.0.20211201134523-3604d96f3fe1/go.mod h1:oS8dycEh8PPf2Jjp6+8dlwWyEv2Dy77h/XhhcdxYEFs= -github.com/nspcc-dev/neofs-api-go/v2 v2.11.2-0.20220302134950-d065453bd0a7 h1:hLMvj4K9djzBg+TaeDGQWGuohzXvcThi0r0LSLhhi3M= -github.com/nspcc-dev/neofs-api-go/v2 v2.11.2-0.20220302134950-d065453bd0a7/go.mod h1:oS8dycEh8PPf2Jjp6+8dlwWyEv2Dy77h/XhhcdxYEFs= +github.com/nspcc-dev/neofs-api-go/v2 v2.12.1 h1:PVU2rLlG9S0jDe5eKyaUs4nKo/la+mN5pvz32Gib3qM= +github.com/nspcc-dev/neofs-api-go/v2 v2.12.1/go.mod h1:73j09Xa7I2zQbM3HCvAHnDHPYiiWnEHa1d6Z6RDMBLU= github.com/nspcc-dev/neofs-crypto v0.2.0/go.mod h1:F/96fUzPM3wR+UGsPi3faVNmFlA9KAEAUQR7dMxZmNA= github.com/nspcc-dev/neofs-crypto v0.2.3/go.mod h1:8w16GEJbH6791ktVqHN9YRNH3s9BEEKYxGhlFnp0cDw= github.com/nspcc-dev/neofs-crypto v0.3.0 h1:zlr3pgoxuzrmGCxc5W8dGVfA9Rro8diFvVnBg0L4ifM= github.com/nspcc-dev/neofs-crypto v0.3.0/go.mod h1:8w16GEJbH6791ktVqHN9YRNH3s9BEEKYxGhlFnp0cDw= github.com/nspcc-dev/neofs-sdk-go v0.0.0-20211201182451-a5b61c4f6477/go.mod h1:dfMtQWmBHYpl9Dez23TGtIUKiFvCIxUZq/CkSIhEpz4= -github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.2 h1:m+em1eyrYFIGUdzs2asDCJH0GVWH+9rYdjLTO42mxSY= -github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.2/go.mod h1:bkVH6yZXH5/F2Sut20SDOlQbveBlaVJ0vOX20tLGnZw= +github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.3 h1:ofaiKPYY67a0cQMF+YSChDO48SBQtWlpZnK++cAeqQM= +github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.3/go.mod h1:0hTXmyJnbw8j4BR1oltN7mFIIrVp1IFLdh8qBzAR464= github.com/nspcc-dev/rfc6979 v0.1.0/go.mod h1:exhIh1PdpDC5vQmyEsGvc4YDM/lyQp/452QxGq/UEso= github.com/nspcc-dev/rfc6979 v0.2.0 h1:3e1WNxrN60/6N0DW7+UYisLeZJyfqZTNOjeV/toYvOE= github.com/nspcc-dev/rfc6979 v0.2.0/go.mod h1:exhIh1PdpDC5vQmyEsGvc4YDM/lyQp/452QxGq/UEso= diff --git a/integration_test.go b/integration_test.go index 8c124e4..882c138 100644 --- a/integration_test.go +++ b/integration_test.go @@ -72,7 +72,7 @@ func runServer() context.CancelFunc { return cancel } -func simplePut(ctx context.Context, t *testing.T, clientPool pool.Pool, CID *cid.ID) { +func simplePut(ctx context.Context, t *testing.T, clientPool *pool.Pool, CID *cid.ID) { content := "content of file" keyAttr, valAttr := "User-Attribute", "user value" @@ -132,7 +132,7 @@ func simplePut(ctx context.Context, t *testing.T, clientPool pool.Pool, CID *cid } } -func simpleGet(ctx context.Context, t *testing.T, clientPool pool.Pool, CID *cid.ID) { +func simpleGet(ctx context.Context, t *testing.T, clientPool *pool.Pool, CID *cid.ID) { content := "content of file" attributes := map[string]string{ "some-attr": "some-get-value", @@ -156,7 +156,7 @@ func simpleGet(ctx context.Context, t *testing.T, clientPool pool.Pool, CID *cid } } -func getByAttr(ctx context.Context, t *testing.T, clientPool pool.Pool, CID *cid.ID) { +func getByAttr(ctx context.Context, t *testing.T, clientPool *pool.Pool, CID *cid.ID) { keyAttr, valAttr := "some-attr", "some-get-by-attr-value" content := "content of file" attributes := map[string]string{keyAttr: valAttr} @@ -185,7 +185,7 @@ func getByAttr(ctx context.Context, t *testing.T, clientPool pool.Pool, CID *cid } } -func getZip(ctx context.Context, t *testing.T, clientPool pool.Pool, CID *cid.ID) { +func getZip(ctx context.Context, t *testing.T, clientPool *pool.Pool, CID *cid.ID) { names := []string{"zipfolder/dir/name1.txt", "zipfolder/name2.txt"} contents := []string{"content of file1", "content of file2"} attributes1 := map[string]string{object.AttributeFileName: names[0]} @@ -271,7 +271,7 @@ func getDefaultConfig() *viper.Viper { return v } -func getPool(ctx context.Context, t *testing.T, key *keys.PrivateKey) pool.Pool { +func getPool(ctx context.Context, t *testing.T, key *keys.PrivateKey) *pool.Pool { pb := new(pool.Builder) pb.AddNode("localhost:8080", 1, 1) @@ -285,7 +285,7 @@ func getPool(ctx context.Context, t *testing.T, key *keys.PrivateKey) pool.Pool return clientPool } -func createContainer(ctx context.Context, t *testing.T, clientPool pool.Pool) (*cid.ID, error) { +func createContainer(ctx context.Context, t *testing.T, clientPool *pool.Pool) (*cid.ID, error) { pp, err := policy.Parse("REP 1") require.NoError(t, err) @@ -310,17 +310,17 @@ func createContainer(ctx context.Context, t *testing.T, clientPool pool.Pool) (* return CID, err } -func putObject(ctx context.Context, t *testing.T, clientPool pool.Pool, CID *cid.ID, content string, attributes map[string]string) *oid.ID { +func putObject(ctx context.Context, t *testing.T, clientPool *pool.Pool, CID *cid.ID, content string, attributes map[string]string) *oid.ID { obj := object.New() obj.SetContainerID(CID) obj.SetOwnerID(clientPool.OwnerID()) - var attrs []*object.Attribute + var attrs []object.Attribute for key, val := range attributes { attr := object.NewAttribute() attr.SetKey(key) attr.SetValue(val) - attrs = append(attrs, attr) + attrs = append(attrs, *attr) } obj.SetAttributes(attrs...) diff --git a/uploader/upload.go b/uploader/upload.go index 5fffa00..4b094a5 100644 --- a/uploader/upload.go +++ b/uploader/upload.go @@ -34,7 +34,7 @@ const ( // Uploader is an upload request handler. type Uploader struct { log *zap.Logger - pool pool.Pool + pool *pool.Pool enableDefaultTimestamp bool } @@ -46,7 +46,7 @@ type epochDurations struct { // New creates a new Uploader using specified logger, connection pool and // other options. -func New(log *zap.Logger, conns pool.Pool, enableDefaultTimestamp bool) *Uploader { +func New(log *zap.Logger, conns *pool.Pool, enableDefaultTimestamp bool) *Uploader { return &Uploader{log, conns, enableDefaultTimestamp} } @@ -107,27 +107,27 @@ func (u *Uploader) Upload(c *fasthttp.RequestCtx) { } } - attributes := make([]*object.Attribute, 0, len(filtered)) + attributes := make([]object.Attribute, 0, len(filtered)) // prepares attributes from filtered headers for key, val := range filtered { attribute := object.NewAttribute() attribute.SetKey(key) attribute.SetValue(val) - attributes = append(attributes, attribute) + attributes = append(attributes, *attribute) } // sets FileName attribute if it wasn't set from header if _, ok := filtered[object.AttributeFileName]; !ok { filename := object.NewAttribute() filename.SetKey(object.AttributeFileName) filename.SetValue(file.FileName()) - attributes = append(attributes, filename) + attributes = append(attributes, *filename) } // sets Timestamp attribute if it wasn't set from header and enabled by settings if _, ok := filtered[object.AttributeTimestamp]; !ok && u.enableDefaultTimestamp { timestamp := object.NewAttribute() timestamp.SetKey(object.AttributeTimestamp) timestamp.SetValue(strconv.FormatInt(time.Now().Unix(), 10)) - attributes = append(attributes, timestamp) + attributes = append(attributes, *timestamp) } id, bt := u.fetchOwnerAndBearerToken(c) @@ -197,7 +197,7 @@ func (pr *putResponse) encode(w io.Writer) error { return enc.Encode(pr) } -func getEpochDurations(ctx context.Context, p pool.Pool) (*epochDurations, error) { +func getEpochDurations(ctx context.Context, p *pool.Pool) (*epochDurations, error) { if conn, _, err := p.Connection(); err != nil { return nil, err } else if networkInfoRes, err := conn.NetworkInfo(ctx, client.PrmNetworkInfo{}); err != nil {