From 066179651c999e9680edae11817ca4ab42acc1ea Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Mon, 22 May 2023 14:42:57 +0300 Subject: refactor(tvix/store/blobsvc): move from Vec to B3Digest Change-Id: I809bab75221f81b6023cfe75c2fe9e589c1e9192 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8605 Autosubmit: flokli Reviewed-by: tazjin Tested-by: BuildkiteCI --- tvix/store/src/proto/grpc_blobservice_wrapper.rs | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) (limited to 'tvix/store/src/proto/grpc_blobservice_wrapper.rs') diff --git a/tvix/store/src/proto/grpc_blobservice_wrapper.rs b/tvix/store/src/proto/grpc_blobservice_wrapper.rs index d1e98a5b7953..3ec1d68872c7 100644 --- a/tvix/store/src/proto/grpc_blobservice_wrapper.rs +++ b/tvix/store/src/proto/grpc_blobservice_wrapper.rs @@ -1,8 +1,8 @@ use crate::{ blobservice::{BlobService, BlobWriter}, proto::sync_read_into_async_read::SyncReadIntoAsyncRead, + B3Digest, }; -use data_encoding::BASE64; use std::{collections::VecDeque, io, pin::Pin}; use tokio::task; use tokio_stream::StreamExt; @@ -36,10 +36,7 @@ impl super::blob_service_server request: Request, ) -> Result, Status> { let rq = request.into_inner(); - let req_digest: [u8; 32] = rq - .digest - .clone() - .try_into() + let req_digest = B3Digest::from_vec(rq.digest) .map_err(|_e| Status::invalid_argument("invalid digest length"))?; if rq.include_chunks || rq.include_bao { @@ -48,10 +45,7 @@ impl super::blob_service_server match self.blob_service.has(&req_digest) { Ok(true) => Ok(Response::new(super::BlobMeta::default())), - Ok(false) => Err(Status::not_found(format!( - "blob {} not found", - BASE64.encode(&req_digest) - ))), + Ok(false) => Err(Status::not_found(format!("blob {} not found", &req_digest))), Err(e) => Err(e.into()), } } @@ -63,11 +57,8 @@ impl super::blob_service_server ) -> Result, Status> { let rq = request.into_inner(); - let req_digest: [u8; 32] = rq - .digest - .clone() - .try_into() - .map_err(|_| Status::invalid_argument("invalid digest length"))?; + let req_digest = B3Digest::from_vec(rq.digest) + .map_err(|_e| Status::invalid_argument("invalid digest length"))?; match self.blob_service.open_read(&req_digest) { Ok(Some(reader)) => { @@ -87,10 +78,7 @@ impl super::blob_service_server let chunks_stream = ReaderStream::new(async_reader).map(stream_mapper); Ok(Response::new(Box::pin(chunks_stream))) } - Ok(None) => Err(Status::not_found(format!( - "blob {} not found", - BASE64.encode(&rq.digest) - ))), + Ok(None) => Err(Status::not_found(format!("blob {} not found", &req_digest))), Err(e) => Err(e.into()), } } -- cgit 1.4.1