Documentation ¶
Overview ¶
Package neofsapiclient provides functionality for IR application communication with NeoFS network.
The basic client for accessing remote nodes via NeoFS API is a NeoFS SDK Go API client. However, although it encapsulates a useful piece of business logic (e.g. the signature mechanism), the IR application does not fully use the client's flexible interface.
In this regard, this package represents an abstraction - a type-wrapper over the base client. The type provides the minimum interface necessary for the application, and also allows you to concentrate the entire spectrum of the client's use in one place (this will be convenient both when updating the base client and for evaluating the UX of SDK library). So it is expected that all application packages will be limited to this package for the development of functionality requiring NeoFS API communication.
Index ¶
- func GetObjectHeaderFromContainer(ctx context.Context, c Client, addr *addressSDK.Address) (*object.Object, error)
- func GetObjectPayload(ctx context.Context, c Client, addr *addressSDK.Address) ([]byte, error)
- func GetRawObjectHeaderLocally(ctx context.Context, c Client, addr *addressSDK.Address) (*object.Object, error)
- func HashObjectRange(ctx context.Context, c Client, addr *addressSDK.Address, rng *object.Range) ([]byte, error)
- type Client
- func (x Client) GetObject(prm GetObjectPrm) (*GetObjectRes, error)
- func (x Client) HashPayloadRange(prm HashPayloadRangePrm) (res HashPayloadRangeRes, err error)
- func (x Client) HeadObject(prm HeadObjectPrm) (*HeadObjectRes, error)
- func (x Client) SearchSG(prm SearchSGPrm) (*SearchSGRes, error)
- func (x *Client) SetPrivateKey(key *ecdsa.PrivateKey)
- func (x *Client) WrapBasicClient(c clientcore.Client)
- type GetObjectPrm
- type GetObjectRes
- type HashPayloadRangePrm
- type HashPayloadRangeRes
- type HeadObjectPrm
- type HeadObjectRes
- type SearchSGPrm
- type SearchSGRes
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetObjectHeaderFromContainer ¶
func GetObjectHeaderFromContainer(ctx context.Context, c Client, addr *addressSDK.Address) (*object.Object, error)
GetObjectHeaderFromContainer reads short object header by address via Client with TTL = 10 for deep traversal of the container.
func GetObjectPayload ¶
GetObjectPayload reads object by address from NeoFS via Client and returns its payload.
Returns any error prevented the operation from completing correctly in error return.
func GetRawObjectHeaderLocally ¶
func GetRawObjectHeaderLocally(ctx context.Context, c Client, addr *addressSDK.Address) (*object.Object, error)
GetRawObjectHeaderLocally reads raw short object header from server's local storage by address via Client.
func HashObjectRange ¶
func HashObjectRange(ctx context.Context, c Client, addr *addressSDK.Address, rng *object.Range) ([]byte, error)
HashObjectRange reads Tillich-Zemor hash of the object payload range by address from the remote server's local storage via Client.
Returns any error prevented the operation from completing correctly in error return.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client represents NeoFS API client cut down to the needs of a purely IR application.
func (Client) GetObject ¶
func (x Client) GetObject(prm GetObjectPrm) (*GetObjectRes, error)
GetObject reads the object by address.
Returns any error prevented the operation from completing correctly in error return.
func (Client) HashPayloadRange ¶
func (x Client) HashPayloadRange(prm HashPayloadRangePrm) (res HashPayloadRangeRes, err error)
HashPayloadRange requests to calculate Tillich-Zemor hash of the payload range of the object from the remote server's local storage.
Returns any error prevented the operation from completing correctly in error return.
func (Client) HeadObject ¶
func (x Client) HeadObject(prm HeadObjectPrm) (*HeadObjectRes, error)
HeadObject reads short object header by address.
Returns any error prevented the operation from completing correctly in error return. For raw requests, returns *object.SplitInfoError error if requested object is virtual.
func (Client) SearchSG ¶
func (x Client) SearchSG(prm SearchSGPrm) (*SearchSGRes, error)
SearchSG lists objects of storage group type in the container.
Returns any error prevented the operation from completing correctly in error return.
func (*Client) SetPrivateKey ¶
func (x *Client) SetPrivateKey(key *ecdsa.PrivateKey)
SetPrivateKey sets private key to sign RPC requests.
func (*Client) WrapBasicClient ¶
func (x *Client) WrapBasicClient(c clientcore.Client)
WrapBasicClient wraps client.Client instance to use it for NeoFS API RPC.
type GetObjectPrm ¶
type GetObjectPrm struct {
// contains filtered or unexported fields
}
GetObjectPrm groups parameters of GetObject operation.
type GetObjectRes ¶
type GetObjectRes struct {
// contains filtered or unexported fields
}
GetObjectRes groups resulting values of GetObject operation.
func (GetObjectRes) Object ¶
func (x GetObjectRes) Object() *object.Object
Object returns received object.
type HashPayloadRangePrm ¶
type HashPayloadRangePrm struct {
// contains filtered or unexported fields
}
HashPayloadRangePrm groups parameters of HashPayloadRange operation.
func (*HashPayloadRangePrm) SetRange ¶
func (x *HashPayloadRangePrm) SetRange(rng *object.Range)
SetRange sets payload range to calculate the hash.
type HashPayloadRangeRes ¶
type HashPayloadRangeRes struct {
// contains filtered or unexported fields
}
HashPayloadRangeRes groups resulting values of HashPayloadRange operation.
func (HashPayloadRangeRes) Hash ¶
func (x HashPayloadRangeRes) Hash() []byte
Hash returns hash of the object payload range.
type HeadObjectPrm ¶
type HeadObjectPrm struct {
// contains filtered or unexported fields
}
HeadObjectPrm groups parameters of HeadObject operation.
func (*HeadObjectPrm) SetRawFlag ¶
func (x *HeadObjectPrm) SetRawFlag()
SetRawFlag sets flag of raw request.
func (*HeadObjectPrm) SetTTL ¶
func (x *HeadObjectPrm) SetTTL(ttl uint32)
SetTTL sets request TTL value.
type HeadObjectRes ¶
type HeadObjectRes struct {
// contains filtered or unexported fields
}
HeadObjectRes groups resulting values of HeadObject operation.
func (HeadObjectRes) Header ¶
func (x HeadObjectRes) Header() *object.Object
Header returns received object header.
type SearchSGPrm ¶
type SearchSGPrm struct {
// contains filtered or unexported fields
}
SearchSGPrm groups parameters of SearchSG operation.
func (*SearchSGPrm) SetContainerID ¶
func (x *SearchSGPrm) SetContainerID(id *cid.ID)
SetContainerID sets ID of the container to search for storage groups.
func (*SearchSGPrm) SetContext ¶
SetContext sets context.Context used for network communication.
type SearchSGRes ¶
type SearchSGRes struct {
// contains filtered or unexported fields
}
SearchSGRes groups resulting values of SearchSG operation.
func (SearchSGRes) IDList ¶
func (x SearchSGRes) IDList() []oid.ID
IDList returns list of IDs of storage groups in container.