Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
ollama
Commits
5a5ca8e7
"git@developer.sourcefind.cn:renzhc/diffusers_dcu.git" did not exist on "ca9ed5e8d1f63cde023f0b66e3323c172cb813d8"
Commit
5a5ca8e7
authored
Jul 24, 2023
by
Bruce MacDonald
Browse files
remove file on digest mismatch
parent
4cb42ca5
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
2 deletions
+15
-2
server/images.go
server/images.go
+15
-2
No files found.
server/images.go
View file @
5a5ca8e7
...
@@ -510,7 +510,7 @@ func CopyModel(src, dest string) error {
...
@@ -510,7 +510,7 @@ func CopyModel(src, dest string) error {
return
err
return
err
}
}
err
=
ioutil
.
WriteFile
(
destPath
,
input
,
0644
)
err
=
ioutil
.
WriteFile
(
destPath
,
input
,
0
o
644
)
if
err
!=
nil
{
if
err
!=
nil
{
fmt
.
Println
(
"Error reading file:"
,
err
)
fmt
.
Println
(
"Error reading file:"
,
err
)
return
err
return
err
...
@@ -700,6 +700,17 @@ func PullModel(name string, regOpts *RegistryOptions, fn func(api.ProgressRespon
...
@@ -700,6 +700,17 @@ func PullModel(name string, regOpts *RegistryOptions, fn func(api.ProgressRespon
fn
(
api
.
ProgressResponse
{
Status
:
"verifying sha256 digest"
})
fn
(
api
.
ProgressResponse
{
Status
:
"verifying sha256 digest"
})
for
_
,
layer
:=
range
layers
{
for
_
,
layer
:=
range
layers
{
if
err
:=
verifyBlob
(
layer
.
Digest
);
err
!=
nil
{
if
err
:=
verifyBlob
(
layer
.
Digest
);
err
!=
nil
{
if
errors
.
Is
(
err
,
errDigestMismatch
)
{
// something went wrong, delete the blob
fp
,
err
:=
GetBlobsPath
(
layer
.
Digest
)
if
err
!=
nil
{
return
err
}
if
err
:=
os
.
Remove
(
fp
);
err
!=
nil
{
// log this, but return the original error
log
.
Printf
(
"couldn't remove file with digest mismatch '%s': %v"
,
fp
,
err
)
}
}
return
err
return
err
}
}
}
}
...
@@ -1059,6 +1070,8 @@ func makeRequest(method, url string, headers map[string]string, body io.Reader,
...
@@ -1059,6 +1070,8 @@ func makeRequest(method, url string, headers map[string]string, body io.Reader,
return
resp
,
nil
return
resp
,
nil
}
}
var
errDigestMismatch
=
fmt
.
Errorf
(
"digest mismatch, file must be downloaded again"
)
func
verifyBlob
(
digest
string
)
error
{
func
verifyBlob
(
digest
string
)
error
{
fp
,
err
:=
GetBlobsPath
(
digest
)
fp
,
err
:=
GetBlobsPath
(
digest
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -1073,7 +1086,7 @@ func verifyBlob(digest string) error {
...
@@ -1073,7 +1086,7 @@ func verifyBlob(digest string) error {
fileDigest
,
_
:=
GetSHA256Digest
(
f
)
fileDigest
,
_
:=
GetSHA256Digest
(
f
)
if
digest
!=
fileDigest
{
if
digest
!=
fileDigest
{
return
fmt
.
Errorf
(
"
digest mismatch
: want %s, got %s"
,
digest
,
fileDigest
)
return
fmt
.
Errorf
(
"
%w
: want %s, got %s"
,
errDigestMismatch
,
digest
,
fileDigest
)
}
}
return
nil
return
nil
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment