feat(storage): provide optional chunk size field for GetObject

This commit is contained in:
Damian Debkowski authored and Timothy Messier committed 2023-05-31 12:18:22 +00:00
1 parent b57692f8fc
commit 9aa4d40d95
6 files changed
+54 -12

No files matched your search

+13 -1
View File
@@ -284,9 +284,21 @@ func (l *LoopbackStorage) getObject(req *plgpb.GetObjectRequest, stream plgpb.St
}
}
go func() {
chunkSize := req.GetChunkSize()
if chunkSize == 0 {
chunkSize = defaultStreamChunckSize
}
data := []byte{}
for _, chunk := range object.DataChunks {
data = append(data, chunk...)
}
for i := 0; i < len(data); i += int(chunkSize) {
end := i + int(chunkSize)
if end > len(data) {
end = len(data)
}
if err := stream.Send(&plgpb.GetObjectResponse{
FileChunk: chunk,
FileChunk: append([]byte{}, data[i:end]...),
}); err != nil {
stream.SendMsg(status.Errorf(codes.Internal, "%s: failed to send object data: %v", op, err))
return