diff options
| author | Dan Engelbrecht <[email protected]> | 2025-03-07 09:58:20 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-03-07 09:58:20 +0100 |
| commit | 9b24647facccc9c7848a52f1f4c5e32055bf2f01 (patch) | |
| tree | d798889a2b3f6a0d72331890b75e92b0159ce0c3 /src/zenutil/jupiter/jupitersession.cpp | |
| parent | reduced memory churn using fixed_xxx containers (#236) (diff) | |
| download | zen-9b24647facccc9c7848a52f1f4c5e32055bf2f01.tar.xz zen-9b24647facccc9c7848a52f1f4c5e32055bf2f01.zip | |
partial block fetch (#298)
- Improvement: Do partial requests of blocks if not all of the block is needed
- Improvement: Better progress/statistics on download
- Bugfix: Ensure that temporary folder for Jupiter downloads exists during verify phase
Diffstat (limited to 'src/zenutil/jupiter/jupitersession.cpp')
| -rw-r--r-- | src/zenutil/jupiter/jupitersession.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/zenutil/jupiter/jupitersession.cpp b/src/zenutil/jupiter/jupitersession.cpp index 06ac6ae36..68f214c06 100644 --- a/src/zenutil/jupiter/jupitersession.cpp +++ b/src/zenutil/jupiter/jupitersession.cpp @@ -698,11 +698,19 @@ JupiterSession::GetBuildBlob(std::string_view Namespace, std::string_view BucketId, const Oid& BuildId, const IoHash& Hash, - std::filesystem::path TempFolderPath) + std::filesystem::path TempFolderPath, + uint64_t Offset, + uint64_t Size) { + HttpClient::KeyValueMap Headers; + if (Offset != 0 || Size != (uint64_t)-1) + { + Headers.Entries.insert({"Range", fmt::format("bytes={}-{}", Offset, Offset + Size - 1)}); + } HttpClient::Response Response = m_HttpClient.Download(fmt::format("/api/v2/builds/{}/{}/{}/blobs/{}", Namespace, BucketId, BuildId, Hash.ToHexString()), - TempFolderPath); + TempFolderPath, + Headers); return detail::ConvertResponse(Response, "JupiterSession::GetBuildBlob"sv); } |