object

package
v0.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2020 License: GPL-3.0 Imports: 24 Imported by: 0

Documentation

Overview

Package object manages main storage structure in the system. All storage operations are performed with the objects. During lifetime object might be transformed into another object by cutting its payload or adding meta information. All transformation may be reversed, therefore source object will be able to restore.

Object structure

Object consists of Payload and Header. Payload is unlimited but storage nodes may have a policy to store objects with a limited payload. In this case object with large payload will be transformed into the chain of objects with small payload.

Headers are simple key-value fields that divided into two groups: system headers and extended headers. System headers contain information about protocol version, object id, payload length in bytes, owner id, container id and object creation timestamp (both in epochs and unix time). All these fields must be set up in the correct object.

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| System Headers                                                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| Version        : 1                                               |
| Payload Length : 21673465                                        |
| Object ID      : 465208e2-ba4f-4f99-ad47-82a59f4192d4            |
| Owner ID       : AShvoCbSZ7VfRiPkVb1tEcBLiJrcbts1tt              |
| Container ID   : FGobtRZA6sBZv2i9k4L7TiTtnuP6E788qa278xfj3Fxj    |
| Created At     : Epoch#10, 1573033162                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| Extended Headers                                                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| User Header         : <user-defined-key>, <user-defined-value>   |
| Verification Header : <session public key>, <owner's signature>  |
| Homomorphic Hash    : 0x23d35a56ae...                            |
| Payload Checksum    : 0x1bd34abs75...                            |
| Integrity Header    : <header checksum>, <session signature>     |
| Transformation      : Payload Split                              |
| Link-parent         : cae08935-b4ba-499a-bf6c-98276c1e6c0b       |
| Link-next           : c3b40fbf-3798-4b61-a189-2992b5fb5070       |
| Payload Checksum    : 0x1f387a5c36...                            |
| Integrity Header    : <header checksum>, <session signature>     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| Payload                                                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| 0xd1581963a342d231...                                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

There are different kinds of extended headers. A correct object must contain verification header, homomorphic hash header, payload checksum and integrity header. The order of headers is matter. Let's look through all these headers.

Link header points to the connected objects. During object transformation, large object might be transformed into the chain of smaller objects. One of these objects drops payload and has several "Child" links. We call this object as zero-object. Others will have "Parent" link to the zero-object, "Previous" and "Next" links in the payload chain.

[ Object ID:1 ] = > transformed
`- [ Zero-Object ID:1 ]
    `- Link-child    ID:2
    `- Link-child    ID:3
    `- Link-child    ID:4
    `- Payload [null]
`- [ Object ID:2 ]
    `- Link-parent   ID:1
    `- Link-next     ID:3
    `- Payload [ 0x13ba... ]
`- [ Object ID:3 ]
    `- Link-parent   ID:1
    `- Link-previous ID:2
    `- Link-next     ID:4
    `- Payload [ 0xcd34... ]
`- [ Object ID:4 ]
    `- Link-parent   ID:1
    `- Link-previous ID:3
    `- Payload [ 0xef86... ]

Storage groups are also objects. They have "Storage Group" links to all objects in the group. Links are set by nodes during transformations and, in general, they should not be set by user manually.

Redirect headers are not used yet, they will be implemented and described later.

User header is a key-value pair of string that can be defined by user. User can use these headers as search attribute. You can store any meta information about object there, e.g. object's nicename.

Transformation header notifies that object was transformed by some pre-defined way. This header sets up before object is transformed and all headers after transformation must be located after transformation header. During reverse transformation, all headers under transformation header will be cut out.

+-+-+-+-+-+-+-+-+-+-       +-+-+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+-+-+
| Payload checksum |       | Payload checksum  |     | Payload checksum  |
| Integrity header |   =>  | Integrity header  |  +  | Integrity header  |
+-+-+-+-+-+-+-+-+-+-       | Transformation    |     | Transformation    |
| Large payload    |       | New Checksum      |     | New Checksum      |
+-+-+-+-+-+-+-+-+-+-       | New Integrity     |     | New Integrity     |
                           +-+-+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+-+-+
                           | Small payload     |     | Small payload     |
                           +-+-+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+-+-+

For now, we use only one type of transformation: payload split transformation. This header set up by node automatically.

Tombstone header notifies that this object was deleted by user. Objects with tombstone header do not have payload, but they still contain meta information in the headers. This way we implement two-phase commit for object removal. Storage nodes will eventually delete all tombstone objects. If you want to delete object, you must create new object with the same object id, with tombstone header, correct signatures and without payload.

Verification header contains session information. To put the object in the system user must create session. It is required because objects might be transformed and therefore must be re-signed. To do that node creates a pair of session public and private keys. Object owner delegates permission to re-sign objects by signing session public key. This header contains session public key and owner's signature of this key. You must specify this header manually.

Homomorphic hash header contains homomorphic hash of the source object. Transformations do not affect this header. This header used by data audit and set by node automatically.

Payload checksum contains checksum of the actual object payload. All payload transformation must set new payload checksum headers. This header set by node automatically.

Integrity header contains checksum of the header and signature of the session key. This header must be last in the list of extended headers. Checksum is calculated by marshaling all above headers, including system headers. This header set by node automatically.

Storage group header is presented in storage group objects. It contains information for data audit: size of validated data, homomorphic has of this data, storage group expiration time in epochs or unix time.

Index

Constants

View Source
const (

	// UnitsKB defines amount of bytes in one kilobyte.
	UnitsKB int64

	// UnitsMB defines amount of bytes in one megabyte.
	UnitsMB

	// UnitsGB defines amount of bytes in one gigabyte.
	UnitsGB

	// UnitsTB defines amount of bytes in one terabyte.
	UnitsTB
)
View Source
const (
	// ErrNotFound is raised when object is not found in the system.
	ErrNotFound = internal.Error("could not find object")

	// ErrHeaderExpected is raised when first message in protobuf stream does not contain user header.
	ErrHeaderExpected = internal.Error("expected header as a first message in stream")

	// KeyStorageGroup is a key for a search object by storage group id.
	KeyStorageGroup = "STORAGE_GROUP"

	// KeyNoChildren is a key for searching object that have no children links.
	KeyNoChildren = "LEAF"

	// KeyParent is a key for searching object by id of parent object.
	KeyParent = "PARENT"

	// KeyHasParent is a key for searching object that have parent link.
	KeyHasParent = "HAS_PAR"

	// KeyTombstone is a key for searching object that have tombstone header.
	KeyTombstone = "TOMBSTONE"

	// KeyChild is a key for searching object by id of child link.
	KeyChild = "CHILD"

	// KeyPrev is a key for searching object by id of previous link.
	KeyPrev = "PREV"

	// KeyNext is a key for searching object by id of next link.
	KeyNext = "NEXT"

	// KeyID is a key for searching object by object id.
	KeyID = "ID"

	// KeyCID is a key for searching object by container id.
	KeyCID = "CID"

	// KeyOwnerID is a key for searching object by owner id.
	KeyOwnerID = "OWNERID"

	// KeyRootObject is a key for searching object that are zero-object or do
	// not have any children.
	KeyRootObject = "ROOT_OBJECT"
)
View Source
const (
	// ErrVerifyPayload is raised when payload checksum cannot be verified.
	ErrVerifyPayload = internal.Error("can't verify payload")

	// ErrVerifyHeader is raised when object integrity cannot be verified.
	ErrVerifyHeader = internal.Error("can't verify header")

	// ErrHeaderNotFound is raised when requested header not found.
	ErrHeaderNotFound = internal.Error("header not found")

	// ErrVerifySignature is raised when signature cannot be verified.
	ErrVerifySignature = internal.Error("can't verify signature")
)
View Source
const (

	// LinkHdr is a link header type.
	LinkHdr headerType
	// RedirectHdr is a redirect header type.
	RedirectHdr
	// UserHdr is a user defined header type.
	UserHdr
	// TransformHdr is a transformation header type.
	TransformHdr
	// TombstoneHdr is a tombstone header type.
	TombstoneHdr
	// VerifyHdr is a verification header type.
	VerifyHdr
	// HomoHashHdr is a homomorphic hash header type.
	HomoHashHdr
	// PayloadChecksumHdr is a payload checksum header type.
	PayloadChecksumHdr
	// IntegrityHdr is a integrity header type.
	IntegrityHdr
	// StorageGroupHdr is a storage group header type.
	StorageGroupHdr
	// PublicKeyHdr is a public key header type.
	PublicKeyHdr
)
View Source
const FilenameHeader = "filename"

FilenameHeader is a user header key for names of files, stored by third party apps. We recommend to use this header to be compatible with neofs http gate, neofs minio gate and neofs-dropper application.

Variables

View Source
var (
	ErrInvalidLengthService        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowService          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupService = fmt.Errorf("proto: unexpected end of group")
)
View Source
var (
	ErrInvalidLengthTypes        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowTypes          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupTypes = fmt.Errorf("proto: unexpected end of group")
)
View Source
var Link_Type_name = map[int32]string{
	0: "Unknown",
	1: "Parent",
	2: "Previous",
	3: "Next",
	4: "Child",
	5: "StorageGroup",
}
View Source
var Link_Type_value = map[string]int32{
	"Unknown":      0,
	"Parent":       1,
	"Previous":     2,
	"Next":         3,
	"Child":        4,
	"StorageGroup": 5,
}
View Source
var Transform_Type_name = map[int32]string{
	0: "Unknown",
	1: "Split",
	2: "Sign",
	3: "Mould",
}
View Source
var Transform_Type_value = map[string]int32{
	"Unknown": 0,
	"Split":   1,
	"Sign":    2,
	"Mould":   3,
}

Functions

func RegisterServiceServer

func RegisterServiceServer(s *grpc.Server, srv ServiceServer)

Types

type Address

type Address = refs.Address

Address is a type alias of object Address.

type ByteSize

type ByteSize uint64

ByteSize used to format bytes

func (ByteSize) String

func (b ByteSize) String() string

String represents ByteSize in string format

type CID

type CID = refs.CID

CID is a type alias of container id.

type CreationPoint

type CreationPoint struct {
	// UnixTime is a date of creation in unixtime format
	UnixTime int64 `protobuf:"varint,1,opt,name=UnixTime,proto3" json:"UnixTime,omitempty"`
	// Epoch is a date of creation in NeoFS epochs
	Epoch                uint64   `protobuf:"varint,2,opt,name=Epoch,proto3" json:"Epoch,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*CreationPoint) Descriptor

func (*CreationPoint) Descriptor() ([]byte, []int)

func (*CreationPoint) GetEpoch

func (m *CreationPoint) GetEpoch() uint64

func (*CreationPoint) GetUnixTime

func (m *CreationPoint) GetUnixTime() int64

func (*CreationPoint) Marshal

func (m *CreationPoint) Marshal() (dAtA []byte, err error)

func (*CreationPoint) MarshalTo

func (m *CreationPoint) MarshalTo(dAtA []byte) (int, error)

func (*CreationPoint) MarshalToSizedBuffer

func (m *CreationPoint) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*CreationPoint) ProtoMessage

func (*CreationPoint) ProtoMessage()

func (*CreationPoint) Reset

func (m *CreationPoint) Reset()

func (*CreationPoint) Size

func (m *CreationPoint) Size() (n int)

func (*CreationPoint) String

func (m *CreationPoint) String() string

func (*CreationPoint) Unmarshal

func (m *CreationPoint) Unmarshal(dAtA []byte) error

func (*CreationPoint) XXX_DiscardUnknown

func (m *CreationPoint) XXX_DiscardUnknown()

func (*CreationPoint) XXX_Marshal

func (m *CreationPoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*CreationPoint) XXX_Merge

func (m *CreationPoint) XXX_Merge(src proto.Message)

func (*CreationPoint) XXX_Size

func (m *CreationPoint) XXX_Size() int

func (*CreationPoint) XXX_Unmarshal

func (m *CreationPoint) XXX_Unmarshal(b []byte) error

type DeleteRequest

type DeleteRequest struct {
	// Address of object (container id + object id)
	Address refs.Address `protobuf:"bytes,1,opt,name=Address,proto3" json:"Address"`
	// OwnerID is a wallet address
	OwnerID OwnerID `protobuf:"bytes,2,opt,name=OwnerID,proto3,customtype=OwnerID" json:"OwnerID"`
	// Token with session public key and user's signature
	Token *session.Token `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"`
	// RequestMetaHeader contains information about request meta headers (should be embedded into message)
	service.RequestMetaHeader `protobuf:"bytes,98,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
	// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
	service.RequestVerificationHeader `protobuf:"bytes,99,opt,name=Verify,proto3,embedded=Verify" json:"Verify"`
	XXX_NoUnkeyedLiteral              struct{} `json:"-"`
	XXX_unrecognized                  []byte   `json:"-"`
	XXX_sizecache                     int32    `json:"-"`
}

func (*DeleteRequest) AllowPreviousNetMap

func (m *DeleteRequest) AllowPreviousNetMap() bool

AllowPreviousNetMap returns permission to use previous network map in object delete request.

func (*DeleteRequest) CID

func (m *DeleteRequest) CID() CID

CID returns container id value from object delete request.

func (*DeleteRequest) Descriptor

func (*DeleteRequest) Descriptor() ([]byte, []int)

func (*DeleteRequest) GetAddress

func (m *DeleteRequest) GetAddress() refs.Address

func (*DeleteRequest) GetToken

func (m *DeleteRequest) GetToken() *session.Token

func (*DeleteRequest) Marshal

func (m *DeleteRequest) Marshal() (dAtA []byte, err error)

func (*DeleteRequest) MarshalTo

func (m *DeleteRequest) MarshalTo(dAtA []byte) (int, error)

func (*DeleteRequest) MarshalToSizedBuffer

func (m *DeleteRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*DeleteRequest) ProtoMessage

func (*DeleteRequest) ProtoMessage()

func (*DeleteRequest) Reset

func (m *DeleteRequest) Reset()

func (*DeleteRequest) Size

func (m *DeleteRequest) Size() (n int)

func (*DeleteRequest) String

func (m *DeleteRequest) String() string

func (*DeleteRequest) Unmarshal

func (m *DeleteRequest) Unmarshal(dAtA []byte) error

func (*DeleteRequest) XXX_DiscardUnknown

func (m *DeleteRequest) XXX_DiscardUnknown()

func (*DeleteRequest) XXX_Marshal

func (m *DeleteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*DeleteRequest) XXX_Merge

func (m *DeleteRequest) XXX_Merge(src proto.Message)

func (*DeleteRequest) XXX_Size

func (m *DeleteRequest) XXX_Size() int

func (*DeleteRequest) XXX_Unmarshal

func (m *DeleteRequest) XXX_Unmarshal(b []byte) error

type DeleteResponse

type DeleteResponse struct {
	// ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message)
	service.ResponseMetaHeader `protobuf:"bytes,99,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
	XXX_NoUnkeyedLiteral       struct{} `json:"-"`
	XXX_unrecognized           []byte   `json:"-"`
	XXX_sizecache              int32    `json:"-"`
}

DeleteResponse is empty because we cannot guarantee permanent object removal in distributed system.

func (*DeleteResponse) Descriptor

func (*DeleteResponse) Descriptor() ([]byte, []int)

func (*DeleteResponse) Marshal

func (m *DeleteResponse) Marshal() (dAtA []byte, err error)

func (*DeleteResponse) MarshalTo

func (m *DeleteResponse) MarshalTo(dAtA []byte) (int, error)

func (*DeleteResponse) MarshalToSizedBuffer

func (m *DeleteResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*DeleteResponse) ProtoMessage

func (*DeleteResponse) ProtoMessage()

func (*DeleteResponse) Reset

func (m *DeleteResponse) Reset()

func (*DeleteResponse) Size

func (m *DeleteResponse) Size() (n int)

func (*DeleteResponse) String

func (m *DeleteResponse) String() string

func (*DeleteResponse) Unmarshal

func (m *DeleteResponse) Unmarshal(dAtA []byte) error

func (*DeleteResponse) XXX_DiscardUnknown

func (m *DeleteResponse) XXX_DiscardUnknown()

func (*DeleteResponse) XXX_Marshal

func (m *DeleteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*DeleteResponse) XXX_Merge

func (m *DeleteResponse) XXX_Merge(src proto.Message)

func (*DeleteResponse) XXX_Size

func (m *DeleteResponse) XXX_Size() int

func (*DeleteResponse) XXX_Unmarshal

func (m *DeleteResponse) XXX_Unmarshal(b []byte) error

type GetRangeHashRequest

type GetRangeHashRequest struct {
	// Address of object (container id + object id)
	Address refs.Address `protobuf:"bytes,1,opt,name=Address,proto3" json:"Address"`
	// Ranges of object's payload to calculate homomorphic hash
	Ranges []Range `protobuf:"bytes,2,rep,name=Ranges,proto3" json:"Ranges"`
	// Salt is used to XOR object's payload ranges before hashing, it can be nil
	Salt []byte `protobuf:"bytes,3,opt,name=Salt,proto3" json:"Salt,omitempty"`
	// RequestMetaHeader contains information about request meta headers (should be embedded into message)
	service.RequestMetaHeader `protobuf:"bytes,98,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
	// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
	service.RequestVerificationHeader `protobuf:"bytes,99,opt,name=Verify,proto3,embedded=Verify" json:"Verify"`
	XXX_NoUnkeyedLiteral              struct{} `json:"-"`
	XXX_unrecognized                  []byte   `json:"-"`
	XXX_sizecache                     int32    `json:"-"`
}

func (*GetRangeHashRequest) AllowPreviousNetMap

func (m *GetRangeHashRequest) AllowPreviousNetMap() bool

AllowPreviousNetMap returns permission to use previous network map in object get range hash request.

func (*GetRangeHashRequest) CID

func (m *GetRangeHashRequest) CID() CID

CID returns container id value from object get range hash request.

func (*GetRangeHashRequest) Descriptor

func (*GetRangeHashRequest) Descriptor() ([]byte, []int)

func (*GetRangeHashRequest) GetAddress

func (m *GetRangeHashRequest) GetAddress() refs.Address

func (*GetRangeHashRequest) GetRanges

func (m *GetRangeHashRequest) GetRanges() []Range

func (*GetRangeHashRequest) GetSalt

func (m *GetRangeHashRequest) GetSalt() []byte

func (*GetRangeHashRequest) Marshal

func (m *GetRangeHashRequest) Marshal() (dAtA []byte, err error)

func (*GetRangeHashRequest) MarshalTo

func (m *GetRangeHashRequest) MarshalTo(dAtA []byte) (int, error)

func (*GetRangeHashRequest) MarshalToSizedBuffer

func (m *GetRangeHashRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*GetRangeHashRequest) ProtoMessage

func (*GetRangeHashRequest) ProtoMessage()

func (*GetRangeHashRequest) Reset

func (m *GetRangeHashRequest) Reset()

func (*GetRangeHashRequest) Size

func (m *GetRangeHashRequest) Size() (n int)

func (*GetRangeHashRequest) String

func (m *GetRangeHashRequest) String() string

func (*GetRangeHashRequest) Unmarshal

func (m *GetRangeHashRequest) Unmarshal(dAtA []byte) error

func (*GetRangeHashRequest) XXX_DiscardUnknown

func (m *GetRangeHashRequest) XXX_DiscardUnknown()

func (*GetRangeHashRequest) XXX_Marshal

func (m *GetRangeHashRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GetRangeHashRequest) XXX_Merge

func (m *GetRangeHashRequest) XXX_Merge(src proto.Message)

func (*GetRangeHashRequest) XXX_Size

func (m *GetRangeHashRequest) XXX_Size() int

func (*GetRangeHashRequest) XXX_Unmarshal

func (m *GetRangeHashRequest) XXX_Unmarshal(b []byte) error

type GetRangeHashResponse

type GetRangeHashResponse struct {
	// Hashes is a homomorphic hashes of all ranges
	Hashes []Hash `protobuf:"bytes,1,rep,name=Hashes,proto3,customtype=Hash" json:"Hashes"`
	// ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message)
	service.ResponseMetaHeader `protobuf:"bytes,99,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
	XXX_NoUnkeyedLiteral       struct{} `json:"-"`
	XXX_unrecognized           []byte   `json:"-"`
	XXX_sizecache              int32    `json:"-"`
}

func (*GetRangeHashResponse) Descriptor

func (*GetRangeHashResponse) Descriptor() ([]byte, []int)

func (*GetRangeHashResponse) Marshal

func (m *GetRangeHashResponse) Marshal() (dAtA []byte, err error)

func (*GetRangeHashResponse) MarshalTo

func (m *GetRangeHashResponse) MarshalTo(dAtA []byte) (int, error)

func (*GetRangeHashResponse) MarshalToSizedBuffer

func (m *GetRangeHashResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*GetRangeHashResponse) ProtoMessage

func (*GetRangeHashResponse) ProtoMessage()

func (*GetRangeHashResponse) Reset

func (m *GetRangeHashResponse) Reset()

func (*GetRangeHashResponse) Size

func (m *GetRangeHashResponse) Size() (n int)

func (*GetRangeHashResponse) String

func (m *GetRangeHashResponse) String() string

func (*GetRangeHashResponse) Unmarshal

func (m *GetRangeHashResponse) Unmarshal(dAtA []byte) error

func (*GetRangeHashResponse) XXX_DiscardUnknown

func (m *GetRangeHashResponse) XXX_DiscardUnknown()

func (*GetRangeHashResponse) XXX_Marshal

func (m *GetRangeHashResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GetRangeHashResponse) XXX_Merge

func (m *GetRangeHashResponse) XXX_Merge(src proto.Message)

func (*GetRangeHashResponse) XXX_Size

func (m *GetRangeHashResponse) XXX_Size() int

func (*GetRangeHashResponse) XXX_Unmarshal

func (m *GetRangeHashResponse) XXX_Unmarshal(b []byte) error

type GetRangeRequest

type GetRangeRequest struct {
	// Address of object (container id + object id)
	Address refs.Address `protobuf:"bytes,1,opt,name=Address,proto3" json:"Address"`
	// Range of object's payload to return
	Range Range `protobuf:"bytes,2,opt,name=Range,proto3" json:"Range"`
	// RequestMetaHeader contains information about request meta headers (should be embedded into message)
	service.RequestMetaHeader `protobuf:"bytes,98,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
	// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
	service.RequestVerificationHeader `protobuf:"bytes,99,opt,name=Verify,proto3,embedded=Verify" json:"Verify"`
	XXX_NoUnkeyedLiteral              struct{} `json:"-"`
	XXX_unrecognized                  []byte   `json:"-"`
	XXX_sizecache                     int32    `json:"-"`
}

func (*GetRangeRequest) AllowPreviousNetMap

func (m *GetRangeRequest) AllowPreviousNetMap() bool

AllowPreviousNetMap returns permission to use previous network map in object get range request.

func (*GetRangeRequest) CID

func (m *GetRangeRequest) CID() CID

CID returns container id value from object get range request.

func (*GetRangeRequest) Descriptor

func (*GetRangeRequest) Descriptor() ([]byte, []int)

func (*GetRangeRequest) GetAddress

func (m *GetRangeRequest) GetAddress() refs.Address

func (*GetRangeRequest) GetRange added in v0.3.0

func (m *GetRangeRequest) GetRange() Range

func (*GetRangeRequest) Marshal

func (m *GetRangeRequest) Marshal() (dAtA []byte, err error)

func (*GetRangeRequest) MarshalTo

func (m *GetRangeRequest) MarshalTo(dAtA []byte) (int, error)

func (*GetRangeRequest) MarshalToSizedBuffer

func (m *GetRangeRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*GetRangeRequest) ProtoMessage

func (*GetRangeRequest) ProtoMessage()

func (*GetRangeRequest) Reset

func (m *GetRangeRequest) Reset()

func (*GetRangeRequest) Size

func (m *GetRangeRequest) Size() (n int)

func (*GetRangeRequest) String

func (m *GetRangeRequest) String() string

func (*GetRangeRequest) Unmarshal

func (m *GetRangeRequest) Unmarshal(dAtA []byte) error

func (*GetRangeRequest) XXX_DiscardUnknown

func (m *GetRangeRequest) XXX_DiscardUnknown()

func (*GetRangeRequest) XXX_Marshal

func (m *GetRangeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GetRangeRequest) XXX_Merge

func (m *GetRangeRequest) XXX_Merge(src proto.Message)

func (*GetRangeRequest) XXX_Size

func (m *GetRangeRequest) XXX_Size() int

func (*GetRangeRequest) XXX_Unmarshal

func (m *GetRangeRequest) XXX_Unmarshal(b []byte) error

type GetRangeResponse

type GetRangeResponse struct {
	// Fragment of object's payload
	Fragment []byte `protobuf:"bytes,1,opt,name=Fragment,proto3" json:"Fragment,omitempty"`
	// ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message)
	service.ResponseMetaHeader `protobuf:"bytes,99,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
	XXX_NoUnkeyedLiteral       struct{} `json:"-"`
	XXX_unrecognized           []byte   `json:"-"`
	XXX_sizecache              int32    `json:"-"`
}

func (*GetRangeResponse) Descriptor

func (*GetRangeResponse) Descriptor() ([]byte, []int)

func (*GetRangeResponse) GetFragment added in v0.3.0

func (m *GetRangeResponse) GetFragment() []byte

func (*GetRangeResponse) Marshal

func (m *GetRangeResponse) Marshal() (dAtA []byte, err error)

func (*GetRangeResponse) MarshalTo

func (m *GetRangeResponse) MarshalTo(dAtA []byte) (int, error)

func (*GetRangeResponse) MarshalToSizedBuffer

func (m *GetRangeResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*GetRangeResponse) ProtoMessage

func (*GetRangeResponse) ProtoMessage()

func (*GetRangeResponse) Reset

func (m *GetRangeResponse) Reset()

func (*GetRangeResponse) Size

func (m *GetRangeResponse) Size() (n int)

func (*GetRangeResponse) String

func (m *GetRangeResponse) String() string

func (*GetRangeResponse) Unmarshal

func (m *GetRangeResponse) Unmarshal(dAtA []byte) error

func (*GetRangeResponse) XXX_DiscardUnknown

func (m *GetRangeResponse) XXX_DiscardUnknown()

func (*GetRangeResponse) XXX_Marshal

func (m *GetRangeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GetRangeResponse) XXX_Merge

func (m *GetRangeResponse) XXX_Merge(src proto.Message)

func (*GetRangeResponse) XXX_Size

func (m *GetRangeResponse) XXX_Size() int

func (*GetRangeResponse) XXX_Unmarshal

func (m *GetRangeResponse) XXX_Unmarshal(b []byte) error

type GetRequest

type GetRequest struct {
	// Address of object (container id + object id)
	Address refs.Address `protobuf:"bytes,1,opt,name=Address,proto3" json:"Address"`
	// Raw is the request flag of a physically stored representation of an object
	Raw bool `protobuf:"varint,2,opt,name=Raw,proto3" json:"Raw,omitempty"`
	// RequestMetaHeader contains information about request meta headers (should be embedded into message)
	service.RequestMetaHeader `protobuf:"bytes,98,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
	// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
	service.RequestVerificationHeader `protobuf:"bytes,99,opt,name=Verify,proto3,embedded=Verify" json:"Verify"`
	XXX_NoUnkeyedLiteral              struct{} `json:"-"`
	XXX_unrecognized                  []byte   `json:"-"`
	XXX_sizecache                     int32    `json:"-"`
}

func (*GetRequest) AllowPreviousNetMap

func (m *GetRequest) AllowPreviousNetMap() bool

AllowPreviousNetMap returns permission to use previous network map in object get request.

func (*GetRequest) CID

func (m *GetRequest) CID() CID

CID returns container id value from object get request.

func (*GetRequest) Descriptor

func (*GetRequest) Descriptor() ([]byte, []int)

func (*GetRequest) GetAddress

func (m *GetRequest) GetAddress() refs.Address

func (*GetRequest) GetRaw

func (m *GetRequest) GetRaw() bool

func (*GetRequest) Marshal

func (m *GetRequest) Marshal() (dAtA []byte, err error)

func (*GetRequest) MarshalTo

func (m *GetRequest) MarshalTo(dAtA []byte) (int, error)

func (*GetRequest) MarshalToSizedBuffer

func (m *GetRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*GetRequest) ProtoMessage

func (*GetRequest) ProtoMessage()

func (*GetRequest) Reset

func (m *GetRequest) Reset()

func (*GetRequest) Size

func (m *GetRequest) Size() (n int)

func (*GetRequest) String

func (m *GetRequest) String() string

func (*GetRequest) Unmarshal

func (m *GetRequest) Unmarshal(dAtA []byte) error

func (*GetRequest) XXX_DiscardUnknown

func (m *GetRequest) XXX_DiscardUnknown()

func (*GetRequest) XXX_Marshal

func (m *GetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GetRequest) XXX_Merge

func (m *GetRequest) XXX_Merge(src proto.Message)

func (*GetRequest) XXX_Size

func (m *GetRequest) XXX_Size() int

func (*GetRequest) XXX_Unmarshal

func (m *GetRequest) XXX_Unmarshal(b []byte) error

type GetResponse

type GetResponse struct {
	// Types that are valid to be assigned to R:
	//	*GetResponse_Object
	//	*GetResponse_Chunk
	R isGetResponse_R `protobuf_oneof:"R"`
	// ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message)
	service.ResponseMetaHeader `protobuf:"bytes,99,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
	XXX_NoUnkeyedLiteral       struct{} `json:"-"`
	XXX_unrecognized           []byte   `json:"-"`
	XXX_sizecache              int32    `json:"-"`
}

func ReceiveGetResponse

func ReceiveGetResponse(c Service_GetClient, maxSize uint64) (*GetResponse, error)

ReceiveGetResponse receives object by chunks from the protobuf stream and combine it into single get response structure.

func (*GetResponse) Descriptor

func (*GetResponse) Descriptor() ([]byte, []int)

func (*GetResponse) GetChunk

func (m *GetResponse) GetChunk() []byte

func (*GetResponse) GetObject

func (m *GetResponse) GetObject() *Object

func (*GetResponse) GetR

func (m *GetResponse) GetR() isGetResponse_R

func (*GetResponse) Marshal

func (m *GetResponse) Marshal() (dAtA []byte, err error)

func (*GetResponse) MarshalTo

func (m *GetResponse) MarshalTo(dAtA []byte) (int, error)

func (*GetResponse) MarshalToSizedBuffer

func (m *GetResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*GetResponse) NotFull

func (m *GetResponse) NotFull() bool

NotFull checks if protobuf stream provided whole object for get operation.

func (*GetResponse) ProtoMessage

func (*GetResponse) ProtoMessage()

func (*GetResponse) Reset

func (m *GetResponse) Reset()

func (*GetResponse) Size

func (m *GetResponse) Size() (n int)

func (*GetResponse) String

func (m *GetResponse) String() string

func (*GetResponse) Unmarshal

func (m *GetResponse) Unmarshal(dAtA []byte) error

func (*GetResponse) XXX_DiscardUnknown

func (m *GetResponse) XXX_DiscardUnknown()

func (*GetResponse) XXX_Marshal

func (m *GetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GetResponse) XXX_Merge

func (m *GetResponse) XXX_Merge(src proto.Message)

func (*GetResponse) XXX_OneofWrappers

func (*GetResponse) XXX_OneofWrappers() []interface{}

XXX_OneofWrappers is for the internal use of the proto package.

func (*GetResponse) XXX_Size

func (m *GetResponse) XXX_Size() int

func (*GetResponse) XXX_Unmarshal

func (m *GetResponse) XXX_Unmarshal(b []byte) error

type GetResponse_Chunk

type GetResponse_Chunk struct {
	Chunk []byte `protobuf:"bytes,2,opt,name=Chunk,proto3,oneof" json:"Chunk,omitempty"`
}

func (*GetResponse_Chunk) MarshalTo

func (m *GetResponse_Chunk) MarshalTo(dAtA []byte) (int, error)

func (*GetResponse_Chunk) MarshalToSizedBuffer

func (m *GetResponse_Chunk) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*GetResponse_Chunk) Size

func (m *GetResponse_Chunk) Size() (n int)

type GetResponse_Object

type GetResponse_Object struct {
	Object *Object `protobuf:"bytes,1,opt,name=object,proto3,oneof" json:"object,omitempty"`
}

func (*GetResponse_Object) MarshalTo

func (m *GetResponse_Object) MarshalTo(dAtA []byte) (int, error)

func (*GetResponse_Object) MarshalToSizedBuffer

func (m *GetResponse_Object) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*GetResponse_Object) Size

func (m *GetResponse_Object) Size() (n int)

type Hash

type Hash = hash.Hash

Hash is a type alias of Homomorphic hash.

type HeadRequest

type HeadRequest struct {
	// Address of object (container id + object id)
	Address Address `protobuf:"bytes,1,opt,name=Address,proto3,customtype=Address" json:"Address"`
	// FullHeaders can be set true for extended headers in the object
	FullHeaders bool `protobuf:"varint,2,opt,name=FullHeaders,proto3" json:"FullHeaders,omitempty"`
	// Raw is the request flag of a physically stored representation of an object
	Raw bool `protobuf:"varint,3,opt,name=Raw,proto3" json:"Raw,omitempty"`
	// RequestMetaHeader contains information about request meta headers (should be embedded into message)
	service.RequestMetaHeader `protobuf:"bytes,98,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
	// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
	service.RequestVerificationHeader `protobuf:"bytes,99,opt,name=Verify,proto3,embedded=Verify" json:"Verify"`
	XXX_NoUnkeyedLiteral              struct{} `json:"-"`
	XXX_unrecognized                  []byte   `json:"-"`
	XXX_sizecache                     int32    `json:"-"`
}

func (*HeadRequest) AllowPreviousNetMap

func (m *HeadRequest) AllowPreviousNetMap() bool

AllowPreviousNetMap returns permission to use previous network map in object head request.

func (*HeadRequest) CID

func (m *HeadRequest) CID() CID

CID returns container id value from object head request.

func (*HeadRequest) Descriptor

func (*HeadRequest) Descriptor() ([]byte, []int)

func (*HeadRequest) GetFullHeaders

func (m *HeadRequest) GetFullHeaders() bool

func (*HeadRequest) GetRaw

func (m *HeadRequest) GetRaw() bool

func (*HeadRequest) Marshal

func (m *HeadRequest) Marshal() (dAtA []byte, err error)

func (*HeadRequest) MarshalTo

func (m *HeadRequest) MarshalTo(dAtA []byte) (int, error)

func (*HeadRequest) MarshalToSizedBuffer

func (m *HeadRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*HeadRequest) ProtoMessage

func (*HeadRequest) ProtoMessage()

func (*HeadRequest) Reset

func (m *HeadRequest) Reset()

func (*HeadRequest) Size

func (m *HeadRequest) Size() (n int)

func (*HeadRequest) String

func (m *HeadRequest) String() string

func (*HeadRequest) Unmarshal

func (m *HeadRequest) Unmarshal(dAtA []byte) error

func (*HeadRequest) XXX_DiscardUnknown

func (m *HeadRequest) XXX_DiscardUnknown()

func (*HeadRequest) XXX_Marshal

func (m *HeadRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*HeadRequest) XXX_Merge

func (m *HeadRequest) XXX_Merge(src proto.Message)

func (*HeadRequest) XXX_Size

func (m *HeadRequest) XXX_Size() int

func (*HeadRequest) XXX_Unmarshal

func (m *HeadRequest) XXX_Unmarshal(b []byte) error

type HeadResponse

type HeadResponse struct {
	// Object without payload
	Object *Object `protobuf:"bytes,1,opt,name=Object,proto3" json:"Object,omitempty"`
	// ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message)
	service.ResponseMetaHeader `protobuf:"bytes,99,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
	XXX_NoUnkeyedLiteral       struct{} `json:"-"`
	XXX_unrecognized           []byte   `json:"-"`
	XXX_sizecache              int32    `json:"-"`
}

func (*HeadResponse) Descriptor

func (*HeadResponse) Descriptor() ([]byte, []int)

func (*HeadResponse) GetObject

func (m *HeadResponse) GetObject() *Object

func (*HeadResponse) Marshal

func (m *HeadResponse) Marshal() (dAtA []byte, err error)

func (*HeadResponse) MarshalTo

func (m *HeadResponse) MarshalTo(dAtA []byte) (int, error)

func (*HeadResponse) MarshalToSizedBuffer

func (m *HeadResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*HeadResponse) ProtoMessage

func (*HeadResponse) ProtoMessage()

func (*HeadResponse) Reset

func (m *HeadResponse) Reset()

func (*HeadResponse) Size

func (m *HeadResponse) Size() (n int)

func (*HeadResponse) String

func (m *HeadResponse) String() string

func (*HeadResponse) Unmarshal

func (m *HeadResponse) Unmarshal(dAtA []byte) error

func (*HeadResponse) XXX_DiscardUnknown

func (m *HeadResponse) XXX_DiscardUnknown()

func (*HeadResponse) XXX_Marshal

func (m *HeadResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*HeadResponse) XXX_Merge

func (m *HeadResponse) XXX_Merge(src proto.Message)

func (*HeadResponse) XXX_Size

func (m *HeadResponse) XXX_Size() int

func (*HeadResponse) XXX_Unmarshal

func (m *HeadResponse) XXX_Unmarshal(b []byte) error
type Header struct {
	// Types that are valid to be assigned to Value:
	//	*Header_Link
	//	*Header_Redirect
	//	*Header_UserHeader
	//	*Header_Transform
	//	*Header_Tombstone
	//	*Header_Verify
	//	*Header_HomoHash
	//	*Header_PayloadChecksum
	//	*Header_Integrity
	//	*Header_StorageGroup
	//	*Header_PublicKey
	Value                isHeader_Value `protobuf_oneof:"Value"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func CreateIntegrityHeader

func CreateIntegrityHeader(obj *Object, key *ecdsa.PrivateKey) (*Header, error)

CreateIntegrityHeader returns signed integrity header for the object

func (*Header) Descriptor

func (*Header) Descriptor() ([]byte, []int)

func (*Header) GetIntegrity

func (m *Header) GetIntegrity() *IntegrityHeader
func (m *Header) GetLink() *Link

func (*Header) GetPayloadChecksum

func (m *Header) GetPayloadChecksum() []byte

func (*Header) GetPublicKey

func (m *Header) GetPublicKey() *PublicKey

func (*Header) GetRedirect

func (m *Header) GetRedirect() *refs.Address

func (*Header) GetStorageGroup

func (m *Header) GetStorageGroup() *storagegroup.StorageGroup

func (*Header) GetTombstone

func (m *Header) GetTombstone() *Tombstone

func (*Header) GetTransform

func (m *Header) GetTransform() *Transform

func (*Header) GetUserHeader

func (m *Header) GetUserHeader() *UserHeader

func (*Header) GetValue

func (m *Header) GetValue() isHeader_Value

func (*Header) GetVerify

func (m *Header) GetVerify() *session.VerificationHeader

func (*Header) Marshal

func (m *Header) Marshal() (dAtA []byte, err error)

func (*Header) MarshalTo

func (m *Header) MarshalTo(dAtA []byte) (int, error)

func (*Header) MarshalToSizedBuffer

func (m *Header) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Header) ProtoMessage

func (*Header) ProtoMessage()

func (*Header) Reset

func (m *Header) Reset()

func (*Header) Size

func (m *Header) Size() (n int)

func (*Header) String

func (m *Header) String() string

func (*Header) Unmarshal

func (m *Header) Unmarshal(dAtA []byte) error

func (*Header) XXX_DiscardUnknown

func (m *Header) XXX_DiscardUnknown()

func (*Header) XXX_Marshal

func (m *Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Header) XXX_Merge

func (m *Header) XXX_Merge(src proto.Message)

func (*Header) XXX_OneofWrappers

func (*Header) XXX_OneofWrappers() []interface{}

XXX_OneofWrappers is for the internal use of the proto package.

func (*Header) XXX_Size

func (m *Header) XXX_Size() int

func (*Header) XXX_Unmarshal

func (m *Header) XXX_Unmarshal(b []byte) error

type Header_HomoHash

type Header_HomoHash struct {
	HomoHash Hash `protobuf:"bytes,7,opt,name=HomoHash,proto3,oneof,customtype=Hash" json:"HomoHash,omitempty"`
}

func (*Header_HomoHash) MarshalTo

func (m *Header_HomoHash) MarshalTo(dAtA []byte) (int, error)

func (*Header_HomoHash) MarshalToSizedBuffer

func (m *Header_HomoHash) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Header_HomoHash) Size

func (m *Header_HomoHash) Size() (n int)

type Header_Integrity

type Header_Integrity struct {
	Integrity *IntegrityHeader `protobuf:"bytes,9,opt,name=Integrity,proto3,oneof" json:"Integrity,omitempty"`
}

func (*Header_Integrity) MarshalTo

func (m *Header_Integrity) MarshalTo(dAtA []byte) (int, error)

func (*Header_Integrity) MarshalToSizedBuffer

func (m *Header_Integrity) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Header_Integrity) Size

func (m *Header_Integrity) Size() (n int)
type Header_Link struct {
	Link *Link `protobuf:"bytes,1,opt,name=Link,proto3,oneof" json:"Link,omitempty"`
}

func (*Header_Link) MarshalTo

func (m *Header_Link) MarshalTo(dAtA []byte) (int, error)

func (*Header_Link) MarshalToSizedBuffer

func (m *Header_Link) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Header_Link) Size

func (m *Header_Link) Size() (n int)

type Header_PayloadChecksum

type Header_PayloadChecksum struct {
	PayloadChecksum []byte `protobuf:"bytes,8,opt,name=PayloadChecksum,proto3,oneof" json:"PayloadChecksum,omitempty"`
}

func (*Header_PayloadChecksum) MarshalTo

func (m *Header_PayloadChecksum) MarshalTo(dAtA []byte) (int, error)

func (*Header_PayloadChecksum) MarshalToSizedBuffer

func (m *Header_PayloadChecksum) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Header_PayloadChecksum) Size

func (m *Header_PayloadChecksum) Size() (n int)

type Header_PublicKey

type Header_PublicKey struct {
	PublicKey *PublicKey `protobuf:"bytes,11,opt,name=PublicKey,proto3,oneof" json:"PublicKey,omitempty"`
}

func (*Header_PublicKey) MarshalTo

func (m *Header_PublicKey) MarshalTo(dAtA []byte) (int, error)

func (*Header_PublicKey) MarshalToSizedBuffer

func (m *Header_PublicKey) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Header_PublicKey) Size

func (m *Header_PublicKey) Size() (n int)

type Header_Redirect

type Header_Redirect struct {
	Redirect *refs.Address `protobuf:"bytes,2,opt,name=Redirect,proto3,oneof" json:"Redirect,omitempty"`
}

func (*Header_Redirect) MarshalTo

func (m *Header_Redirect) MarshalTo(dAtA []byte) (int, error)

func (*Header_Redirect) MarshalToSizedBuffer

func (m *Header_Redirect) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Header_Redirect) Size

func (m *Header_Redirect) Size() (n int)

type Header_StorageGroup

type Header_StorageGroup struct {
	StorageGroup *storagegroup.StorageGroup `protobuf:"bytes,10,opt,name=StorageGroup,proto3,oneof" json:"StorageGroup,omitempty"`
}

func (*Header_StorageGroup) MarshalTo

func (m *Header_StorageGroup) MarshalTo(dAtA []byte) (int, error)

func (*Header_StorageGroup) MarshalToSizedBuffer

func (m *Header_StorageGroup) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Header_StorageGroup) Size

func (m *Header_StorageGroup) Size() (n int)

type Header_Tombstone

type Header_Tombstone struct {
	Tombstone *Tombstone `protobuf:"bytes,5,opt,name=Tombstone,proto3,oneof" json:"Tombstone,omitempty"`
}

func (*Header_Tombstone) MarshalTo

func (m *Header_Tombstone) MarshalTo(dAtA []byte) (int, error)

func (*Header_Tombstone) MarshalToSizedBuffer

func (m *Header_Tombstone) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Header_Tombstone) Size

func (m *Header_Tombstone) Size() (n int)

type Header_Transform

type Header_Transform struct {
	Transform *Transform `protobuf:"bytes,4,opt,name=Transform,proto3,oneof" json:"Transform,omitempty"`
}

func (*Header_Transform) MarshalTo

func (m *Header_Transform) MarshalTo(dAtA []byte) (int, error)

func (*Header_Transform) MarshalToSizedBuffer

func (m *Header_Transform) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Header_Transform) Size

func (m *Header_Transform) Size() (n int)

type Header_UserHeader

type Header_UserHeader struct {
	UserHeader *UserHeader `protobuf:"bytes,3,opt,name=UserHeader,proto3,oneof" json:"UserHeader,omitempty"`
}

func (*Header_UserHeader) MarshalTo

func (m *Header_UserHeader) MarshalTo(dAtA []byte) (int, error)

func (*Header_UserHeader) MarshalToSizedBuffer

func (m *Header_UserHeader) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Header_UserHeader) Size

func (m *Header_UserHeader) Size() (n int)

type Header_Verify

type Header_Verify struct {
	Verify *session.VerificationHeader `protobuf:"bytes,6,opt,name=Verify,proto3,oneof" json:"Verify,omitempty"`
}

func (*Header_Verify) MarshalTo

func (m *Header_Verify) MarshalTo(dAtA []byte) (int, error)

func (*Header_Verify) MarshalToSizedBuffer

func (m *Header_Verify) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Header_Verify) Size

func (m *Header_Verify) Size() (n int)

type ID

type ID = refs.ObjectID

ID is a type alias of object id.

type IntegrityHeader

type IntegrityHeader struct {
	// HeadersChecksum is a checksum of all above headers in the object
	HeadersChecksum []byte `protobuf:"bytes,1,opt,name=HeadersChecksum,proto3" json:"HeadersChecksum,omitempty"`
	// ChecksumSignature is an user's signature of checksum to verify if it is correct
	ChecksumSignature    []byte   `protobuf:"bytes,2,opt,name=ChecksumSignature,proto3" json:"ChecksumSignature,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*IntegrityHeader) Descriptor

func (*IntegrityHeader) Descriptor() ([]byte, []int)

func (*IntegrityHeader) GetChecksumSignature

func (m *IntegrityHeader) GetChecksumSignature() []byte

func (*IntegrityHeader) GetHeadersChecksum

func (m *IntegrityHeader) GetHeadersChecksum() []byte

func (*IntegrityHeader) Marshal

func (m *IntegrityHeader) Marshal() (dAtA []byte, err error)

func (*IntegrityHeader) MarshalTo

func (m *IntegrityHeader) MarshalTo(dAtA []byte) (int, error)

func (*IntegrityHeader) MarshalToSizedBuffer

func (m *IntegrityHeader) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*IntegrityHeader) ProtoMessage

func (*IntegrityHeader) ProtoMessage()

func (*IntegrityHeader) Reset

func (m *IntegrityHeader) Reset()

func (*IntegrityHeader) Size

func (m *IntegrityHeader) Size() (n int)

func (*IntegrityHeader) String

func (m *IntegrityHeader) String() string

func (*IntegrityHeader) Unmarshal

func (m *IntegrityHeader) Unmarshal(dAtA []byte) error

func (*IntegrityHeader) XXX_DiscardUnknown

func (m *IntegrityHeader) XXX_DiscardUnknown()

func (*IntegrityHeader) XXX_Marshal

func (m *IntegrityHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*IntegrityHeader) XXX_Merge

func (m *IntegrityHeader) XXX_Merge(src proto.Message)

func (*IntegrityHeader) XXX_Size

func (m *IntegrityHeader) XXX_Size() int

func (*IntegrityHeader) XXX_Unmarshal

func (m *IntegrityHeader) XXX_Unmarshal(b []byte) error
type Link struct {
	// Type of link
	Type Link_Type `protobuf:"varint,1,opt,name=type,proto3,enum=object.Link_Type" json:"type,omitempty"`
	// ID is an object identifier, is a valid UUIDv4
	ID                   ID       `protobuf:"bytes,2,opt,name=ID,proto3,customtype=ID" json:"ID"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*Link) Descriptor

func (*Link) Descriptor() ([]byte, []int)

func (*Link) GetType

func (m *Link) GetType() Link_Type

func (*Link) Marshal

func (m *Link) Marshal() (dAtA []byte, err error)

func (*Link) MarshalTo

func (m *Link) MarshalTo(dAtA []byte) (int, error)

func (*Link) MarshalToSizedBuffer

func (m *Link) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Link) ProtoMessage

func (*Link) ProtoMessage()

func (*Link) Reset

func (m *Link) Reset()

func (*Link) Size

func (m *Link) Size() (n int)

func (*Link) String

func (m *Link) String() string

func (*Link) Unmarshal

func (m *Link) Unmarshal(dAtA []byte) error

func (*Link) XXX_DiscardUnknown

func (m *Link) XXX_DiscardUnknown()

func (*Link) XXX_Marshal

func (m *Link) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Link) XXX_Merge

func (m *Link) XXX_Merge(src proto.Message)

func (*Link) XXX_Size

func (m *Link) XXX_Size() int

func (*Link) XXX_Unmarshal

func (m *Link) XXX_Unmarshal(b []byte) error
type Link_Type int32
const (
	Link_Unknown Link_Type = 0
	// Parent object created during object transformation
	Link_Parent Link_Type = 1
	// Previous object in the linked list created during object transformation
	Link_Previous Link_Type = 2
	// Next object in the linked list created during object transformation
	Link_Next Link_Type = 3
	// Child object created during object transformation
	Link_Child Link_Type = 4
	// Object that included into this storage group
	Link_StorageGroup Link_Type = 5
)
func (Link_Type) EnumDescriptor() ([]byte, []int)
func (x Link_Type) String() string

type Object

type Object struct {
	// SystemHeader describes system header
	SystemHeader SystemHeader `protobuf:"bytes,1,opt,name=SystemHeader,proto3" json:"SystemHeader"`
	// Headers describes a set of an extended headers
	Headers []Header `protobuf:"bytes,2,rep,name=Headers,proto3" json:"Headers"`
	// Payload is an object's payload
	Payload              []byte   `protobuf:"bytes,3,opt,name=Payload,proto3" json:"Payload,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*Object) AddHeader

func (m *Object) AddHeader(h *Header)

AddHeader adds passed header to the end of extended header list.

func (Object) Address

func (m Object) Address() *refs.Address

Address returns object's address.

func (Object) Bytes

func (m Object) Bytes() []byte

Bytes returns marshaled object in a binary format.

func (*Object) Copy

func (m *Object) Copy() (obj *Object)

Copy creates full copy of the object.

func (*Object) CopyTo

func (m *Object) CopyTo(o *Object)

CopyTo creates fills passed object with the data from the current object. This function creates copies on every available data slice.

func (*Object) Descriptor

func (*Object) Descriptor() ([]byte, []int)

func (Object) Empty

func (m Object) Empty() bool

Empty checks if object does not contain any information.

func (*Object) GetHeaders

func (m *Object) GetHeaders() []Header

func (*Object) GetPayload

func (m *Object) GetPayload() []byte

func (*Object) GetSystemHeader

func (m *Object) GetSystemHeader() SystemHeader

func (*Object) Group

func (m *Object) Group() []refs.ObjectID

Group returns slice of object ids that are part of a storage group.

func (*Object) IDInfo

func (m *Object) IDInfo() *storagegroup.IdentificationInfo

IDInfo returns meta information about storage group.

func (Object) IsLinking

func (m Object) IsLinking() bool

IsLinking checks if object has children links to another objects. We have to check payload size because zero-object must have zero payload and non-zero payload length field in system header.

func (Object) IsTombstone

func (m Object) IsTombstone() bool

IsTombstone checks if object has tombstone header.

func (Object) LastHeader

func (m Object) LastHeader(f Pred) (int, *Header)

LastHeader returns last header of the specified type. Type must be specified as a Pred function.

func (m *Object) Links(t Link_Type) []ID

Links returns slice of ids of specified link type

func (*Object) Marshal

func (m *Object) Marshal() (dAtA []byte, err error)

func (*Object) MarshalTo

func (m *Object) MarshalTo(dAtA []byte) (int, error)

func (*Object) MarshalToSizedBuffer

func (m *Object) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (Object) PayloadChecksum

func (m Object) PayloadChecksum() []byte

PayloadChecksum calculates sha256 checksum of object payload.

func (*Object) ProtoMessage

func (*Object) ProtoMessage()

func (*Object) Reset

func (m *Object) Reset()

func (*Object) SetHeader

func (m *Object) SetHeader(h *Header)

SetHeader replaces existing extended header or adds new one to the end of extended header list.

func (*Object) SetPayload

func (m *Object) SetPayload(payload []byte)

SetPayload sets payload field and payload length in the system header.

func (*Object) SetStorageGroup

func (m *Object) SetStorageGroup(group *storagegroup.StorageGroup)

SetStorageGroup sets storage group header in the object. It will replace existing storage group header or add a new one.

func (*Object) SetVerificationHeader

func (m *Object) SetVerificationHeader(header *VerificationHeader)

SetVerificationHeader sets verification header in the object. It will replace existing verification header or add a new one.

func (*Object) Sign

func (m *Object) Sign(key *ecdsa.PrivateKey) error

Sign creates new integrity header and adds it to the end of the list of extended headers.

func (*Object) Size

func (m *Object) Size() (n int)

func (Object) StorageGroup

func (m Object) StorageGroup() (*storagegroup.StorageGroup, error)

StorageGroup returns storage group structure if it is presented in extended headers.

func (*Object) String

func (m *Object) String() string

func (Object) Tombstone

func (m Object) Tombstone() *Tombstone

Tombstone returns tombstone header if it is presented in extended headers.

func (*Object) Unmarshal

func (m *Object) Unmarshal(dAtA []byte) error

func (Object) VerificationHeader

func (m Object) VerificationHeader() (*VerificationHeader, error)

VerificationHeader returns verification header if it is presented in extended headers.

func (Object) Verify

func (m Object) Verify() error

Verify performs local integrity check by finding verification header and integrity header. If header integrity is passed, function verifies checksum of the object payload. todo: move this verification logic into separate library

func (*Object) XXX_DiscardUnknown

func (m *Object) XXX_DiscardUnknown()

func (*Object) XXX_Marshal

func (m *Object) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Object) XXX_Merge

func (m *Object) XXX_Merge(src proto.Message)

func (*Object) XXX_Size

func (m *Object) XXX_Size() int

func (*Object) XXX_Unmarshal

func (m *Object) XXX_Unmarshal(b []byte) error

func (*Object) Zones

func (m *Object) Zones() []storagegroup.ZoneInfo

Zones returns validation zones of storage group.

type OwnerID

type OwnerID = refs.OwnerID

OwnerID is a type alias of owner id.

type PositionReader

type PositionReader interface {
	PRead(ctx context.Context, addr refs.Address, rng Range) ([]byte, error)
}

PositionReader defines object reader that returns slice of bytes for specified object and data range.

type Pred

type Pred = func(*Header) bool

Pred defines a predicate function that can check if passed header satisfies predicate condition. It is used to find headers of specific type.

func HeaderType

func HeaderType(t headerType) Pred

HeaderType returns predicate that check if extended header is a header of specified type.

type PublicKey

type PublicKey struct {
	// Value contains marshaled ecdsa public key
	Value                []byte   `protobuf:"bytes,1,opt,name=Value,proto3" json:"Value,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*PublicKey) Descriptor

func (*PublicKey) Descriptor() ([]byte, []int)

func (*PublicKey) GetValue

func (m *PublicKey) GetValue() []byte

func (*PublicKey) Marshal

func (m *PublicKey) Marshal() (dAtA []byte, err error)

func (*PublicKey) MarshalTo

func (m *PublicKey) MarshalTo(dAtA []byte) (int, error)

func (*PublicKey) MarshalToSizedBuffer

func (m *PublicKey) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*PublicKey) ProtoMessage

func (*PublicKey) ProtoMessage()

func (*PublicKey) Reset

func (m *PublicKey) Reset()

func (*PublicKey) Size

func (m *PublicKey) Size() (n int)

func (*PublicKey) String

func (m *PublicKey) String() string

func (*PublicKey) Unmarshal

func (m *PublicKey) Unmarshal(dAtA []byte) error

func (*PublicKey) XXX_DiscardUnknown

func (m *PublicKey) XXX_DiscardUnknown()

func (*PublicKey) XXX_Marshal

func (m *PublicKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PublicKey) XXX_Merge

func (m *PublicKey) XXX_Merge(src proto.Message)

func (*PublicKey) XXX_Size

func (m *PublicKey) XXX_Size() int

func (*PublicKey) XXX_Unmarshal

func (m *PublicKey) XXX_Unmarshal(b []byte) error

type PutRequest

type PutRequest struct {
	// Types that are valid to be assigned to R:
	//	*PutRequest_Header
	//	*PutRequest_Chunk
	R isPutRequest_R `protobuf_oneof:"R"`
	// RequestMetaHeader contains information about request meta headers (should be embedded into message)
	service.RequestMetaHeader `protobuf:"bytes,98,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
	// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
	service.RequestVerificationHeader `protobuf:"bytes,99,opt,name=Verify,proto3,embedded=Verify" json:"Verify"`
	XXX_NoUnkeyedLiteral              struct{} `json:"-"`
	XXX_unrecognized                  []byte   `json:"-"`
	XXX_sizecache                     int32    `json:"-"`
}

func MakePutRequestChunk

func MakePutRequestChunk(chunk []byte) *PutRequest

MakePutRequestChunk splits data into chunks that will be transferred in the protobuf stream.

func MakePutRequestHeader

func MakePutRequestHeader(obj *Object, token *session.Token) *PutRequest

MakePutRequestHeader combines object and session token value into header of object put request.

func (*PutRequest) AllowPreviousNetMap

func (m *PutRequest) AllowPreviousNetMap() bool

AllowPreviousNetMap returns permission to use previous network map in object put request.

func (*PutRequest) CID

func (m *PutRequest) CID() CID

CID returns container id value from object put request.

func (*PutRequest) Descriptor

func (*PutRequest) Descriptor() ([]byte, []int)

func (*PutRequest) GetChunk

func (m *PutRequest) GetChunk() []byte

func (*PutRequest) GetHeader

func (m *PutRequest) GetHeader() *PutRequest_PutHeader

func (*PutRequest) GetR

func (m *PutRequest) GetR() isPutRequest_R

func (*PutRequest) Marshal

func (m *PutRequest) Marshal() (dAtA []byte, err error)

func (*PutRequest) MarshalTo

func (m *PutRequest) MarshalTo(dAtA []byte) (int, error)

func (*PutRequest) MarshalToSizedBuffer

func (m *PutRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*PutRequest) NotFull

func (m *PutRequest) NotFull() bool

NotFull checks if protobuf stream provided whole object for put operation.

func (*PutRequest) ProtoMessage

func (*PutRequest) ProtoMessage()

func (*PutRequest) Reset

func (m *PutRequest) Reset()

func (*PutRequest) Size

func (m *PutRequest) Size() (n int)

func (*PutRequest) String

func (m *PutRequest) String() string

func (*PutRequest) Unmarshal

func (m *PutRequest) Unmarshal(dAtA []byte) error

func (*PutRequest) XXX_DiscardUnknown

func (m *PutRequest) XXX_DiscardUnknown()

func (*PutRequest) XXX_Marshal

func (m *PutRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PutRequest) XXX_Merge

func (m *PutRequest) XXX_Merge(src proto.Message)

func (*PutRequest) XXX_OneofWrappers

func (*PutRequest) XXX_OneofWrappers() []interface{}

XXX_OneofWrappers is for the internal use of the proto package.

func (*PutRequest) XXX_Size

func (m *PutRequest) XXX_Size() int

func (*PutRequest) XXX_Unmarshal

func (m *PutRequest) XXX_Unmarshal(b []byte) error

type PutRequest_Chunk

type PutRequest_Chunk struct {
	Chunk []byte `protobuf:"bytes,2,opt,name=Chunk,proto3,oneof" json:"Chunk,omitempty"`
}

func (*PutRequest_Chunk) MarshalTo

func (m *PutRequest_Chunk) MarshalTo(dAtA []byte) (int, error)

func (*PutRequest_Chunk) MarshalToSizedBuffer

func (m *PutRequest_Chunk) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*PutRequest_Chunk) Size

func (m *PutRequest_Chunk) Size() (n int)

type PutRequest_Header

type PutRequest_Header struct {
	Header *PutRequest_PutHeader `protobuf:"bytes,1,opt,name=Header,proto3,oneof" json:"Header,omitempty"`
}

func (*PutRequest_Header) MarshalTo

func (m *PutRequest_Header) MarshalTo(dAtA []byte) (int, error)

func (*PutRequest_Header) MarshalToSizedBuffer

func (m *PutRequest_Header) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*PutRequest_Header) Size

func (m *PutRequest_Header) Size() (n int)

type PutRequest_PutHeader

type PutRequest_PutHeader struct {
	// Object with at least container id and owner id fields
	Object *Object `protobuf:"bytes,1,opt,name=Object,proto3" json:"Object,omitempty"`
	// Token with session public key and user's signature
	Token                *session.Token `protobuf:"bytes,2,opt,name=Token,proto3" json:"Token,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (*PutRequest_PutHeader) Descriptor

func (*PutRequest_PutHeader) Descriptor() ([]byte, []int)

func (*PutRequest_PutHeader) GetObject

func (m *PutRequest_PutHeader) GetObject() *Object

func (*PutRequest_PutHeader) GetToken

func (m *PutRequest_PutHeader) GetToken() *session.Token

func (*PutRequest_PutHeader) Marshal

func (m *PutRequest_PutHeader) Marshal() (dAtA []byte, err error)

func (*PutRequest_PutHeader) MarshalTo

func (m *PutRequest_PutHeader) MarshalTo(dAtA []byte) (int, error)

func (*PutRequest_PutHeader) MarshalToSizedBuffer

func (m *PutRequest_PutHeader) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*PutRequest_PutHeader) ProtoMessage

func (*PutRequest_PutHeader) ProtoMessage()

func (*PutRequest_PutHeader) Reset

func (m *PutRequest_PutHeader) Reset()

func (*PutRequest_PutHeader) Size

func (m *PutRequest_PutHeader) Size() (n int)

func (*PutRequest_PutHeader) String

func (m *PutRequest_PutHeader) String() string

func (*PutRequest_PutHeader) Unmarshal

func (m *PutRequest_PutHeader) Unmarshal(dAtA []byte) error

func (*PutRequest_PutHeader) XXX_DiscardUnknown

func (m *PutRequest_PutHeader) XXX_DiscardUnknown()

func (*PutRequest_PutHeader) XXX_Marshal

func (m *PutRequest_PutHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PutRequest_PutHeader) XXX_Merge

func (m *PutRequest_PutHeader) XXX_Merge(src proto.Message)

func (*PutRequest_PutHeader) XXX_Size

func (m *PutRequest_PutHeader) XXX_Size() int

func (*PutRequest_PutHeader) XXX_Unmarshal

func (m *PutRequest_PutHeader) XXX_Unmarshal(b []byte) error

type PutResponse

type PutResponse struct {
	// Address of object (container id + object id)
	Address refs.Address `protobuf:"bytes,1,opt,name=Address,proto3" json:"Address"`
	// ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message)
	service.ResponseMetaHeader `protobuf:"bytes,99,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
	XXX_NoUnkeyedLiteral       struct{} `json:"-"`
	XXX_unrecognized           []byte   `json:"-"`
	XXX_sizecache              int32    `json:"-"`
}

func (*PutResponse) Descriptor

func (*PutResponse) Descriptor() ([]byte, []int)

func (*PutResponse) GetAddress

func (m *PutResponse) GetAddress() refs.Address

func (*PutResponse) Marshal

func (m *PutResponse) Marshal() (dAtA []byte, err error)

func (*PutResponse) MarshalTo

func (m *PutResponse) MarshalTo(dAtA []byte) (int, error)

func (*PutResponse) MarshalToSizedBuffer

func (m *PutResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*PutResponse) ProtoMessage

func (*PutResponse) ProtoMessage()

func (*PutResponse) Reset

func (m *PutResponse) Reset()

func (*PutResponse) Size

func (m *PutResponse) Size() (n int)

func (*PutResponse) String

func (m *PutResponse) String() string

func (*PutResponse) Unmarshal

func (m *PutResponse) Unmarshal(dAtA []byte) error

func (*PutResponse) XXX_DiscardUnknown

func (m *PutResponse) XXX_DiscardUnknown()

func (*PutResponse) XXX_Marshal

func (m *PutResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PutResponse) XXX_Merge

func (m *PutResponse) XXX_Merge(src proto.Message)

func (*PutResponse) XXX_Size

func (m *PutResponse) XXX_Size() int

func (*PutResponse) XXX_Unmarshal

func (m *PutResponse) XXX_Unmarshal(b []byte) error

type Range

type Range struct {
	// Offset of the data range
	Offset uint64 `protobuf:"varint,1,opt,name=Offset,proto3" json:"Offset,omitempty"`
	// Length of the data range
	Length               uint64   `protobuf:"varint,2,opt,name=Length,proto3" json:"Length,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*Range) Descriptor

func (*Range) Descriptor() ([]byte, []int)

func (*Range) GetLength

func (m *Range) GetLength() uint64

func (*Range) GetOffset

func (m *Range) GetOffset() uint64

func (*Range) Marshal

func (m *Range) Marshal() (dAtA []byte, err error)

func (*Range) MarshalTo

func (m *Range) MarshalTo(dAtA []byte) (int, error)

func (*Range) MarshalToSizedBuffer

func (m *Range) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Range) ProtoMessage

func (*Range) ProtoMessage()

func (*Range) Reset

func (m *Range) Reset()

func (*Range) Size

func (m *Range) Size() (n int)

func (*Range) String

func (m *Range) String() string

func (*Range) Unmarshal

func (m *Range) Unmarshal(dAtA []byte) error

func (*Range) XXX_DiscardUnknown

func (m *Range) XXX_DiscardUnknown()

func (*Range) XXX_Marshal

func (m *Range) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Range) XXX_Merge

func (m *Range) XXX_Merge(src proto.Message)

func (*Range) XXX_Size

func (m *Range) XXX_Size() int

func (*Range) XXX_Unmarshal

func (m *Range) XXX_Unmarshal(b []byte) error

type Request

type Request interface {
	service.MetaHeader

	CID() CID
	AllowPreviousNetMap() bool
}

Request defines object rpc requests. All object operations must have TTL, Epoch, Container ID and permission of usage previous network map.

type SGID

type SGID = refs.SGID

SGID is a type alias of storage group id.

type SearchRequest

type SearchRequest struct {
	// ContainerID for searching the object
	ContainerID CID `protobuf:"bytes,1,opt,name=ContainerID,proto3,customtype=CID" json:"ContainerID"`
	// Query in the binary serialized format
	Query []byte `protobuf:"bytes,2,opt,name=Query,proto3" json:"Query,omitempty"`
	// QueryVersion is a version of search query format
	QueryVersion uint32 `protobuf:"varint,3,opt,name=QueryVersion,proto3" json:"QueryVersion,omitempty"`
	// RequestMetaHeader contains information about request meta headers (should be embedded into message)
	service.RequestMetaHeader `protobuf:"bytes,98,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
	// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
	service.RequestVerificationHeader `protobuf:"bytes,99,opt,name=Verify,proto3,embedded=Verify" json:"Verify"`
	XXX_NoUnkeyedLiteral              struct{} `json:"-"`
	XXX_unrecognized                  []byte   `json:"-"`
	XXX_sizecache                     int32    `json:"-"`
}

func (*SearchRequest) AllowPreviousNetMap

func (m *SearchRequest) AllowPreviousNetMap() bool

AllowPreviousNetMap returns permission to use previous network map in object search request.

func (*SearchRequest) CID

func (m *SearchRequest) CID() CID

CID returns container id value from object search request.

func (*SearchRequest) Descriptor

func (*SearchRequest) Descriptor() ([]byte, []int)

func (*SearchRequest) GetQuery

func (m *SearchRequest) GetQuery() []byte

func (*SearchRequest) GetQueryVersion

func (m *SearchRequest) GetQueryVersion() uint32

func (*SearchRequest) Marshal

func (m *SearchRequest) Marshal() (dAtA []byte, err error)

func (*SearchRequest) MarshalTo

func (m *SearchRequest) MarshalTo(dAtA []byte) (int, error)

func (*SearchRequest) MarshalToSizedBuffer

func (m *SearchRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*SearchRequest) ProtoMessage

func (*SearchRequest) ProtoMessage()

func (*SearchRequest) Reset

func (m *SearchRequest) Reset()

func (*SearchRequest) Size

func (m *SearchRequest) Size() (n int)

func (*SearchRequest) String

func (m *SearchRequest) String() string

func (*SearchRequest) Unmarshal

func (m *SearchRequest) Unmarshal(dAtA []byte) error

func (*SearchRequest) XXX_DiscardUnknown

func (m *SearchRequest) XXX_DiscardUnknown()

func (*SearchRequest) XXX_Marshal

func (m *SearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*SearchRequest) XXX_Merge

func (m *SearchRequest) XXX_Merge(src proto.Message)

func (*SearchRequest) XXX_Size

func (m *SearchRequest) XXX_Size() int

func (*SearchRequest) XXX_Unmarshal

func (m *SearchRequest) XXX_Unmarshal(b []byte) error

type SearchResponse

type SearchResponse struct {
	// Addresses of found objects
	Addresses []refs.Address `protobuf:"bytes,1,rep,name=Addresses,proto3" json:"Addresses"`
	// ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message)
	service.ResponseMetaHeader `protobuf:"bytes,99,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
	XXX_NoUnkeyedLiteral       struct{} `json:"-"`
	XXX_unrecognized           []byte   `json:"-"`
	XXX_sizecache              int32    `json:"-"`
}

func (*SearchResponse) Descriptor

func (*SearchResponse) Descriptor() ([]byte, []int)

func (*SearchResponse) GetAddresses

func (m *SearchResponse) GetAddresses() []refs.Address

func (*SearchResponse) Marshal

func (m *SearchResponse) Marshal() (dAtA []byte, err error)

func (*SearchResponse) MarshalTo

func (m *SearchResponse) MarshalTo(dAtA []byte) (int, error)

func (*SearchResponse) MarshalToSizedBuffer

func (m *SearchResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*SearchResponse) ProtoMessage

func (*SearchResponse) ProtoMessage()

func (*SearchResponse) Reset

func (m *SearchResponse) Reset()

func (*SearchResponse) Size

func (m *SearchResponse) Size() (n int)

func (*SearchResponse) String

func (m *SearchResponse) String() string

func (*SearchResponse) Unmarshal

func (m *SearchResponse) Unmarshal(dAtA []byte) error

func (*SearchResponse) XXX_DiscardUnknown

func (m *SearchResponse) XXX_DiscardUnknown()

func (*SearchResponse) XXX_Marshal

func (m *SearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*SearchResponse) XXX_Merge

func (m *SearchResponse) XXX_Merge(src proto.Message)

func (*SearchResponse) XXX_Size

func (m *SearchResponse) XXX_Size() int

func (*SearchResponse) XXX_Unmarshal

func (m *SearchResponse) XXX_Unmarshal(b []byte) error

type ServiceClient

type ServiceClient interface {
	// Get the object from container. Response uses gRPC stream. First response
	// message carry object of requested address. Chunk messages are parts of
	// the object's payload if it is needed. All messages except first carry
	// chunks. Requested object can be restored by concatenation of object
	// message payload and all chunks keeping receiving order.
	Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (Service_GetClient, error)
	// Put the object into container. Request uses gRPC stream. First message
	// SHOULD BE type of PutHeader. Container id and Owner id of object SHOULD
	// BE set. Session token SHOULD BE obtained before put operation (see
	// session package). Chunk messages considered by server as part of object
	// payload. All messages except first SHOULD BE chunks. Chunk messages
	// SHOULD BE sent in direct order of fragmentation.
	Put(ctx context.Context, opts ...grpc.CallOption) (Service_PutClient, error)
	// Delete the object from a container
	Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
	// Head returns the object without data payload. Object in the
	// response has system header only. If full headers flag is set, extended
	// headers are also present.
	Head(ctx context.Context, in *HeadRequest, opts ...grpc.CallOption) (*HeadResponse, error)
	// Search objects in container. Version of query language format SHOULD BE
	// set to 1. Search query represented in serialized format (see query
	// package).
	Search(ctx context.Context, in *SearchRequest, opts ...grpc.CallOption) (Service_SearchClient, error)
	// GetRange of data payload. Range is a pair (offset, length).
	// Requested range can be restored by concatenation of all chunks
	// keeping receiving order.
	GetRange(ctx context.Context, in *GetRangeRequest, opts ...grpc.CallOption) (Service_GetRangeClient, error)
	// GetRangeHash returns homomorphic hash of object payload range after XOR
	// operation. Ranges are set of pairs (offset, length). Hashes order in
	// response corresponds to ranges order in request. Homomorphic hash is
	// calculated for XORed data.
	GetRangeHash(ctx context.Context, in *GetRangeHashRequest, opts ...grpc.CallOption) (*GetRangeHashResponse, error)
}

ServiceClient is the client API for Service service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewServiceClient

func NewServiceClient(cc *grpc.ClientConn) ServiceClient

type ServiceServer

type ServiceServer interface {
	// Get the object from container. Response uses gRPC stream. First response
	// message carry object of requested address. Chunk messages are parts of
	// the object's payload if it is needed. All messages except first carry
	// chunks. Requested object can be restored by concatenation of object
	// message payload and all chunks keeping receiving order.
	Get(*GetRequest, Service_GetServer) error
	// Put the object into container. Request uses gRPC stream. First message
	// SHOULD BE type of PutHeader. Container id and Owner id of object SHOULD
	// BE set. Session token SHOULD BE obtained before put operation (see
	// session package). Chunk messages considered by server as part of object
	// payload. All messages except first SHOULD BE chunks. Chunk messages
	// SHOULD BE sent in direct order of fragmentation.
	Put(Service_PutServer) error
	// Delete the object from a container
	Delete(context.Context, *DeleteRequest) (*DeleteResponse, error)
	// Head returns the object without data payload. Object in the
	// response has system header only. If full headers flag is set, extended
	// headers are also present.
	Head(context.Context, *HeadRequest) (*HeadResponse, error)
	// Search objects in container. Version of query language format SHOULD BE
	// set to 1. Search query represented in serialized format (see query
	// package).
	Search(*SearchRequest, Service_SearchServer) error
	// GetRange of data payload. Range is a pair (offset, length).
	// Requested range can be restored by concatenation of all chunks
	// keeping receiving order.
	GetRange(*GetRangeRequest, Service_GetRangeServer) error
	// GetRangeHash returns homomorphic hash of object payload range after XOR
	// operation. Ranges are set of pairs (offset, length). Hashes order in
	// response corresponds to ranges order in request. Homomorphic hash is
	// calculated for XORed data.
	GetRangeHash(context.Context, *GetRangeHashRequest) (*GetRangeHashResponse, error)
}

ServiceServer is the server API for Service service.

type Service_GetClient

type Service_GetClient interface {
	Recv() (*GetResponse, error)
	grpc.ClientStream
}

type Service_GetRangeClient added in v0.3.0

type Service_GetRangeClient interface {
	Recv() (*GetRangeResponse, error)
	grpc.ClientStream
}

type Service_GetRangeServer added in v0.3.0

type Service_GetRangeServer interface {
	Send(*GetRangeResponse) error
	grpc.ServerStream
}

type Service_GetServer

type Service_GetServer interface {
	Send(*GetResponse) error
	grpc.ServerStream
}

type Service_PutClient

type Service_PutClient interface {
	Send(*PutRequest) error
	CloseAndRecv() (*PutResponse, error)
	grpc.ClientStream
}

type Service_PutServer

type Service_PutServer interface {
	SendAndClose(*PutResponse) error
	Recv() (*PutRequest, error)
	grpc.ServerStream
}

type Service_SearchClient added in v0.2.14

type Service_SearchClient interface {
	Recv() (*SearchResponse, error)
	grpc.ClientStream
}

type Service_SearchServer added in v0.2.14

type Service_SearchServer interface {
	Send(*SearchResponse) error
	grpc.ServerStream
}

type SystemHeader

type SystemHeader struct {
	// Version of the object structure
	Version uint64 `protobuf:"varint,1,opt,name=Version,proto3" json:"Version,omitempty"`
	// PayloadLength is an object payload length
	PayloadLength uint64 `protobuf:"varint,2,opt,name=PayloadLength,proto3" json:"PayloadLength,omitempty"`
	// ID is an object identifier, is a valid UUIDv4
	ID ID `protobuf:"bytes,3,opt,name=ID,proto3,customtype=ID" json:"ID"`
	// OwnerID is a wallet address
	OwnerID OwnerID `protobuf:"bytes,4,opt,name=OwnerID,proto3,customtype=OwnerID" json:"OwnerID"`
	// CID is a SHA256 hash of the container structure (container identifier)
	CID CID `protobuf:"bytes,5,opt,name=CID,proto3,customtype=CID" json:"CID"`
	// CreatedAt is a timestamp of object creation
	CreatedAt            CreationPoint `protobuf:"bytes,6,opt,name=CreatedAt,proto3" json:"CreatedAt"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (*SystemHeader) Descriptor

func (*SystemHeader) Descriptor() ([]byte, []int)

func (*SystemHeader) GetCreatedAt

func (m *SystemHeader) GetCreatedAt() CreationPoint

func (*SystemHeader) GetPayloadLength

func (m *SystemHeader) GetPayloadLength() uint64

func (*SystemHeader) GetVersion

func (m *SystemHeader) GetVersion() uint64

func (*SystemHeader) Marshal

func (m *SystemHeader) Marshal() (dAtA []byte, err error)

func (*SystemHeader) MarshalTo

func (m *SystemHeader) MarshalTo(dAtA []byte) (int, error)

func (*SystemHeader) MarshalToSizedBuffer

func (m *SystemHeader) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*SystemHeader) ProtoMessage

func (*SystemHeader) ProtoMessage()

func (*SystemHeader) Reset

func (m *SystemHeader) Reset()

func (*SystemHeader) Size

func (m *SystemHeader) Size() (n int)

func (*SystemHeader) String

func (m *SystemHeader) String() string

func (*SystemHeader) Unmarshal

func (m *SystemHeader) Unmarshal(dAtA []byte) error

func (*SystemHeader) XXX_DiscardUnknown

func (m *SystemHeader) XXX_DiscardUnknown()

func (*SystemHeader) XXX_Marshal

func (m *SystemHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*SystemHeader) XXX_Merge

func (m *SystemHeader) XXX_Merge(src proto.Message)

func (*SystemHeader) XXX_Size

func (m *SystemHeader) XXX_Size() int

func (*SystemHeader) XXX_Unmarshal

func (m *SystemHeader) XXX_Unmarshal(b []byte) error

type Token

type Token = session.Token

Token is a type alias of session token.

type Tombstone

type Tombstone struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*Tombstone) Descriptor

func (*Tombstone) Descriptor() ([]byte, []int)

func (*Tombstone) Marshal

func (m *Tombstone) Marshal() (dAtA []byte, err error)

func (*Tombstone) MarshalTo

func (m *Tombstone) MarshalTo(dAtA []byte) (int, error)

func (*Tombstone) MarshalToSizedBuffer

func (m *Tombstone) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Tombstone) ProtoMessage

func (*Tombstone) ProtoMessage()

func (*Tombstone) Reset

func (m *Tombstone) Reset()

func (*Tombstone) Size

func (m *Tombstone) Size() (n int)

func (*Tombstone) String

func (m *Tombstone) String() string

func (*Tombstone) Unmarshal

func (m *Tombstone) Unmarshal(dAtA []byte) error

func (*Tombstone) XXX_DiscardUnknown

func (m *Tombstone) XXX_DiscardUnknown()

func (*Tombstone) XXX_Marshal

func (m *Tombstone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Tombstone) XXX_Merge

func (m *Tombstone) XXX_Merge(src proto.Message)

func (*Tombstone) XXX_Size

func (m *Tombstone) XXX_Size() int

func (*Tombstone) XXX_Unmarshal

func (m *Tombstone) XXX_Unmarshal(b []byte) error

type Transform

type Transform struct {
	// Type of object transformation
	Type                 Transform_Type `protobuf:"varint,1,opt,name=type,proto3,enum=object.Transform_Type" json:"type,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (*Transform) Descriptor

func (*Transform) Descriptor() ([]byte, []int)

func (*Transform) GetType

func (m *Transform) GetType() Transform_Type

func (*Transform) Marshal

func (m *Transform) Marshal() (dAtA []byte, err error)

func (*Transform) MarshalTo

func (m *Transform) MarshalTo(dAtA []byte) (int, error)

func (*Transform) MarshalToSizedBuffer

func (m *Transform) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Transform) ProtoMessage

func (*Transform) ProtoMessage()

func (*Transform) Reset

func (m *Transform) Reset()

func (*Transform) Size

func (m *Transform) Size() (n int)

func (*Transform) String

func (m *Transform) String() string

func (*Transform) Unmarshal

func (m *Transform) Unmarshal(dAtA []byte) error

func (*Transform) XXX_DiscardUnknown

func (m *Transform) XXX_DiscardUnknown()

func (*Transform) XXX_Marshal

func (m *Transform) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Transform) XXX_Merge

func (m *Transform) XXX_Merge(src proto.Message)

func (*Transform) XXX_Size

func (m *Transform) XXX_Size() int

func (*Transform) XXX_Unmarshal

func (m *Transform) XXX_Unmarshal(b []byte) error

type Transform_Type

type Transform_Type int32
const (
	Transform_Unknown Transform_Type = 0
	// Split sets when object created after payload split
	Transform_Split Transform_Type = 1
	// Sign sets when object created after re-signing (doesn't used)
	Transform_Sign Transform_Type = 2
	// Mould sets when object created after filling missing headers in the object
	Transform_Mould Transform_Type = 3
)

func (Transform_Type) EnumDescriptor

func (Transform_Type) EnumDescriptor() ([]byte, []int)

func (Transform_Type) String

func (x Transform_Type) String() string

type UnimplementedServiceServer

type UnimplementedServiceServer struct {
}

UnimplementedServiceServer can be embedded to have forward compatible implementations.

func (*UnimplementedServiceServer) Delete

func (*UnimplementedServiceServer) Get

func (*UnimplementedServiceServer) GetRange

func (*UnimplementedServiceServer) GetRangeHash

func (*UnimplementedServiceServer) Head

func (*UnimplementedServiceServer) Put

func (*UnimplementedServiceServer) Search

type UserHeader

type UserHeader struct {
	// Key of the user's header
	Key string `protobuf:"bytes,1,opt,name=Key,proto3" json:"Key,omitempty"`
	// Value of the user's header
	Value                string   `protobuf:"bytes,2,opt,name=Value,proto3" json:"Value,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*UserHeader) Descriptor

func (*UserHeader) Descriptor() ([]byte, []int)

func (*UserHeader) GetKey

func (m *UserHeader) GetKey() string

func (*UserHeader) GetValue

func (m *UserHeader) GetValue() string

func (*UserHeader) Marshal

func (m *UserHeader) Marshal() (dAtA []byte, err error)

func (*UserHeader) MarshalTo

func (m *UserHeader) MarshalTo(dAtA []byte) (int, error)

func (*UserHeader) MarshalToSizedBuffer

func (m *UserHeader) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*UserHeader) ProtoMessage

func (*UserHeader) ProtoMessage()

func (*UserHeader) Reset

func (m *UserHeader) Reset()

func (*UserHeader) Size

func (m *UserHeader) Size() (n int)

func (*UserHeader) String

func (m *UserHeader) String() string

func (*UserHeader) Unmarshal

func (m *UserHeader) Unmarshal(dAtA []byte) error

func (*UserHeader) XXX_DiscardUnknown

func (m *UserHeader) XXX_DiscardUnknown()

func (*UserHeader) XXX_Marshal

func (m *UserHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*UserHeader) XXX_Merge

func (m *UserHeader) XXX_Merge(src proto.Message)

func (*UserHeader) XXX_Size

func (m *UserHeader) XXX_Size() int

func (*UserHeader) XXX_Unmarshal

func (m *UserHeader) XXX_Unmarshal(b []byte) error

type VerificationHeader

type VerificationHeader = session.VerificationHeader

VerificationHeader is a type alias of session's verification header.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL