"vscode:/vscode.git/clone" did not exist on "c58a0c185b974e6af1eed8372a3cce3624f00617"
Unverified Commit a0dbbb23 authored by Bruce MacDonald's avatar Bruce MacDonald Committed by GitHub
Browse files

truncate file size on resume

parents 0fd62784 fdbef6c9
......@@ -939,6 +939,7 @@ func downloadBlob(mp ModelPath, digest string, regOpts *RegistryOptions, fn func
}
var size int64
chunkSize := 1024 * 1024 // 1 MiB in bytes
fi, err := os.Stat(fp + "-partial")
switch {
......@@ -948,6 +949,13 @@ func downloadBlob(mp ModelPath, digest string, regOpts *RegistryOptions, fn func
return fmt.Errorf("stat: %w", err)
default:
size = fi.Size()
// Ensure the size is divisible by the chunk size by removing excess bytes
size -= size % int64(chunkSize)
err := os.Truncate(fp+"-partial", size)
if err != nil {
return fmt.Errorf("truncate: %w", err)
}
}
url := fmt.Sprintf("%s/v2/%s/blobs/%s", mp.Registry, mp.GetNamespaceRepository(), digest)
......@@ -1008,7 +1016,7 @@ func downloadBlob(mp ModelPath, digest string, regOpts *RegistryOptions, fn func
break
}
n, err := io.CopyN(out, resp.Body, 8192)
n, err := io.CopyN(out, resp.Body, int64(chunkSize))
if err != nil && !errors.Is(err, io.EOF) {
return err
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment