After recent changes in NeoFS SDK Go library session tokens aren't
embedded into `container.Container` and `eacl.Table` structures.
Instead, the operations of storing given values in NeoFS are
parameterized by elements of the corresponding type.
Add dedicated session parameters to operations of bucket and eACL
setting.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
`PlacementPolicy` type now provides methods to work with QL-encoded
policies. System network parameters can be read using dedicated method
without iterating. Applications can work with `PlacementPolicy`
variables directly so there is no need to use pointers.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
`CreateBucket` handler always creates containers with extended public
ACL, so there is no need to configure it in `NeoFS.CreateContainer`.
Make internal `NeoFS` implementation to create containers with
`eacl-public-read-write` basic ACL if corresponding parameter is unset.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Pull latest changes from NeoFS SDK Go library. Decrease redundant and
unsafe usage of ID pointers. Use `EncodeToString` method in order to
calculate protocol strings.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Includes:
- container removal fix
- new session token structure: authmate does not
parse session context anymore, instead it is
application defined flexible structure with
container ID encoded in human-readable format
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
Replace `layer.objectWritePayload` method with `initObjectPayloadReader`
which returns `io.Reader` of the object payload. Copy payload data to
the parameterized `io.Writer` in `layer.GetObject`. Remove `io.Pipe`
from `CompleteMultipartUpload` implementation and build analogue of
`io.MultiReader` for the part list.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Make `tokens`, `authmate` and `layer` packages to depend from locally
defined `NeoFS` interface of the virtual connection to NeoFS network.
Create internal `neofs` package and implement these interfaces through
`pool.Pool` there. Implement mediators between `NeoFS` interfaces and
`neofs.NeoFS` implementation.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Core changes:
- `object.ID` moved to new package `oid`;
- `object.Address` moved to new package `address`;
- `pool.Object` interface changes.
Additionally:
- Set container owner in `Agent.IssueSecret`.
- Remove no longer needed fields from `GetObjectParams`
- `Length` and `Offset` are never assigned. These values
are set in `Range` field.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>