gitdataai/lib/git/proto/blob.proto
2026-05-30 01:38:40 +08:00

113 lines
2.1 KiB
Protocol Buffer

syntax = "proto3";
package git.v1;
import "common.proto";
// Mirrors: cmd/blob/blob_load.rs — BlobLoadParams
message BlobLoadParams {
ObjectId id = 1;
string path = 2;
}
// Mirrors: cmd/blob/blob_load.rs — BlobLoadResult
message BlobLoadResult {
BlobLoadParams params = 1;
bytes blob = 2;
}
// Mirrors: cmd/blob/blob_size.rs — BlobSizeParams
message BlobSizeParams {
ObjectId id = 1;
string path = 2;
}
// Mirrors: cmd/blob/blob_upload.rs — BlobUploadParams
message BlobUploadParams {
bytes blob = 1;
string path = 2;
}
// Mirrors: cmd/blob/blob_upload.rs — BlobUploadResult
message BlobUploadResult {
ObjectId id = 1;
}
// Mirrors: cmd/blob/blob_chunk.rs — BlobChunkParam
message BlobChunkParam {
string path = 1;
ObjectId oid = 2;
uint64 size = 3;
uint64 offset = 4;
}
// Mirrors: cmd/blob/blob_chunk.rs — BlobChunk
message BlobChunk {
BlobChunkParam param = 1;
bytes chunk = 2;
}
message BlobLoadRequest {
string repo_id = 1;
ObjectId id = 2;
string path = 3;
}
message BlobLoadResponse {
bytes blob = 1;
}
message BlobSizeRequest {
string repo_id = 1;
ObjectId id = 2;
string path = 3;
}
message BlobSizeResponse {
uint64 size = 1;
}
message BlobExistsRequest {
string repo_id = 1;
ObjectId id = 2;
}
message BlobExistsResponse {
bool exists = 1;
}
message BlobIsBinaryRequest {
string repo_id = 1;
ObjectId id = 2;
}
message BlobIsBinaryResponse {
bool is_binary = 1;
}
message BlobUploadRequest {
string repo_id = 1;
bytes blob = 2;
string path = 3;
}
message BlobUploadResponse {
ObjectId id = 1;
}
message BlobChunkRequest {
string repo_id = 1;
string path = 2;
ObjectId oid = 3;
uint64 size = 4;
uint64 offset = 5;
}
service BlobService {
rpc BlobLoad(BlobLoadRequest) returns (BlobLoadResponse);
rpc BlobSize(BlobSizeRequest) returns (BlobSizeResponse);
rpc BlobExists(BlobExistsRequest) returns (BlobExistsResponse);
rpc BlobIsBinary(BlobIsBinaryRequest) returns (BlobIsBinaryResponse);
rpc BlobUpload(BlobUploadRequest) returns (BlobUploadResponse);
rpc BlobChunkStream(BlobChunkRequest) returns (stream BlobChunk);
}