fix(server): Ensure paths exist when renaming in filesystem storage
The point at which files are moved happens to also (initially) be the point where the `layers` directory is created. For this reason renaming must ensure that all path components exist, which this commit takes care of.
This commit is contained in:
parent
c08aa52558
commit
b60a8d007b
1 changed files with 7 additions and 1 deletions
|
@ -59,7 +59,13 @@ func (b *FSBackend) Fetch(key string) (io.ReadCloser, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *FSBackend) Move(old, new string) error {
|
func (b *FSBackend) Move(old, new string) error {
|
||||||
return os.Rename(path.Join(b.path, old), path.Join(b.path, new))
|
newpath := path.Join(b.path, new)
|
||||||
|
err := os.MkdirAll(path.Dir(newpath), 0755)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return os.Rename(path.Join(b.path, old), newpath)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *FSBackend) ServeLayer(digest string, w http.ResponseWriter) error {
|
func (b *FSBackend) ServeLayer(digest string, w http.ResponseWriter) error {
|
||||||
|
|
Loading…
Reference in a new issue