mirror of
https://github.com/restic/rest-server.git
synced 2025-12-06 17:15:45 -08:00
committed by
Zlatko Čalušić
parent
b786c5d1cc
commit
f02ee7386a
@@ -14,10 +14,6 @@ Rest Server requires Go 1.7 or higher to build. The only tested compiler is the
|
||||
|
||||
The required version of restic backup client to use with Rest Server is [v0.7.1](https://github.com/restic/restic/releases/tag/v0.7.1) or higher.
|
||||
|
||||
If you have a local repository created with an older version of restic client, which you would now like to serve via Rest Server, you need to first create missing subdirectories in the data directory. Run this simple one-liner in the repository directory:
|
||||
|
||||
```for i in {0..255}; do mkdir -p $(printf "data/%02x" $i); done```
|
||||
|
||||
## Installation
|
||||
|
||||
### From source
|
||||
|
||||
11
handlers.go
11
handlers.go
@@ -367,6 +367,17 @@ func SaveBlob(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
tf, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY|os.O_EXCL, 0600)
|
||||
if os.IsNotExist(err) {
|
||||
// the error is caused by a missing directory, create it and retry
|
||||
mkdirErr := os.MkdirAll(filepath.Dir(path), 0700)
|
||||
if mkdirErr != nil {
|
||||
log.Print(mkdirErr)
|
||||
} else {
|
||||
// try again
|
||||
tf, err = os.OpenFile(path, os.O_CREATE|os.O_WRONLY|os.O_EXCL, 0600)
|
||||
}
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
if Config.Debug {
|
||||
log.Print(err)
|
||||
|
||||
Reference in New Issue
Block a user