forked from TrueCloudLab/frostfs-node
[#186] localstorage: Implement utility functions over StorageEngine
Implement Put/Get/GetRange/Select/SelectAll functions over storage engine. These functions are going to be used by Object service. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
70a65c5aff
commit
9a4cd01eb8
4 changed files with 63 additions and 0 deletions
|
@ -97,3 +97,28 @@ func (e *StorageEngine) Get(prm *GetPrm) (*GetRes, error) {
|
|||
obj: obj,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Get reads object from local storage by provided address.
|
||||
func Get(storage *StorageEngine, addr *objectSDK.Address) (*object.Object, error) {
|
||||
res, err := storage.Get(new(GetPrm).
|
||||
WithAddress(addr),
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return res.Object(), nil
|
||||
}
|
||||
|
||||
// GetRange reads object payload range from local storage by provided address.
|
||||
func GetRange(storage *StorageEngine, addr *objectSDK.Address, rng *objectSDK.Range) ([]byte, error) {
|
||||
res, err := storage.Get(new(GetPrm).
|
||||
WithAddress(addr).
|
||||
WithPayloadRange(rng.GetOffset(), rng.GetLength()),
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return res.Object().Payload(), nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue