forked from TrueCloudLab/frostfs-api
[#9] object service: Add PutSingle RPC
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
parent
b471eaaba9
commit
f2a60016ab
1 changed files with 77 additions and 0 deletions
|
@ -231,6 +231,38 @@ service ObjectService {
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
rpc GetRangeHash(GetRangeHashRequest) returns (GetRangeHashResponse);
|
rpc GetRangeHash(GetRangeHashRequest) returns (GetRangeHashResponse);
|
||||||
|
|
||||||
|
// Put the prepared object into container.
|
||||||
|
// `ContainerID`, `ObjectID`, `OwnerID`, `PayloadHash` and `PayloadLength` of an object MUST be set.
|
||||||
|
//
|
||||||
|
// Extended headers can change `Put` behaviour:
|
||||||
|
// * [ __SYSTEM__NETMAP_EPOCH \
|
||||||
|
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
|
||||||
|
// Will use the requested version of Network Map for object placement
|
||||||
|
// calculation.
|
||||||
|
//
|
||||||
|
// Please refer to detailed `XHeader` description.
|
||||||
|
//
|
||||||
|
// Statuses:
|
||||||
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
|
// object has been successfully saved in the container;
|
||||||
|
// - Common failures (SECTION_FAILURE_COMMON);
|
||||||
|
// - **ACCESS_DENIED** (2048, SECTION_OBJECT): \
|
||||||
|
// write access to the container is denied;
|
||||||
|
// - **LOCKED** (2050, SECTION_OBJECT): \
|
||||||
|
// placement of an object of type TOMBSTONE that includes at least one locked
|
||||||
|
// object is prohibited;
|
||||||
|
// - **LOCK_NON_REGULAR_OBJECT** (2051, SECTION_OBJECT): \
|
||||||
|
// placement of an object of type LOCK that includes at least one object of
|
||||||
|
// type other than REGULAR is prohibited;
|
||||||
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
|
// object storage container not found;
|
||||||
|
// - **TOKEN_NOT_FOUND** (4096, SECTION_SESSION): \
|
||||||
|
// (for trusted object preparation) session private key does not exist or has
|
||||||
|
// been deleted;
|
||||||
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
|
// provided session token has expired.
|
||||||
|
rpc PutSingle(PutSingleRequest) returns (PutSingleResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
// GET object request
|
// GET object request
|
||||||
|
@ -709,3 +741,48 @@ message GetRangeHashResponse {
|
||||||
// transmission.
|
// transmission.
|
||||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Object PUT Single request
|
||||||
|
message PutSingleRequest {
|
||||||
|
// PUT Single request body
|
||||||
|
message Body {
|
||||||
|
// Prepared object with payload.
|
||||||
|
Object object = 1;
|
||||||
|
// Number of copies of the object to store within the RPC call. By default,
|
||||||
|
// object is processed according to the container's placement policy.
|
||||||
|
// Every number is treated as a minimal number of
|
||||||
|
// nodes in a corresponding placement vector that must store an object
|
||||||
|
// to complete the request successfully. The length MUST equal the placement
|
||||||
|
// vectors number, otherwise request is considered malformed.
|
||||||
|
repeated uint32 copies_number = 2;
|
||||||
|
}
|
||||||
|
// Body of put single object request message.
|
||||||
|
Body body = 1;
|
||||||
|
|
||||||
|
// Carries request meta information. Header data is used only to regulate
|
||||||
|
// message transport and does not affect request execution.
|
||||||
|
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||||
|
|
||||||
|
// Carries request verification information. This header is used to
|
||||||
|
// authenticate the nodes of the message route and check the correctness of
|
||||||
|
// transmission.
|
||||||
|
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Object PUT Single response
|
||||||
|
message PutSingleResponse {
|
||||||
|
// PUT Single Object response body
|
||||||
|
message Body {
|
||||||
|
}
|
||||||
|
// Body of put single object response message.
|
||||||
|
Body body = 1;
|
||||||
|
|
||||||
|
// Carries response meta information. Header data is used only to regulate
|
||||||
|
// message transport and does not affect request execution.
|
||||||
|
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||||
|
|
||||||
|
// Carries response verification information. This header is used to
|
||||||
|
// authenticate the nodes of the message route and check the correctness of
|
||||||
|
// transmission.
|
||||||
|
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||||
|
}
|
Loading…
Reference in a new issue