Merge pull request #1261 from asaf-erlich/patch-1

Update ark restore to not open every single file open during extracti…
pull/1273/head
KubeKween 2019-03-08 14:59:09 -08:00 committed by GitHub
commit 4ee41a13a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 7 deletions

View File

@ -0,0 +1 @@
Update velero restore to not open every single file open during extraction of the data

View File

@ -46,6 +46,19 @@ func (e *backupExtractor) unzipAndExtractBackup(src io.Reader) (string, error) {
return e.readBackup(tar.NewReader(gzr))
}
func (e *backupExtractor) writeFile(target string, tarRdr *tar.Reader) error {
file, err := e.fileSystem.Create(target)
if err != nil {
return err
}
defer file.Close()
if _, err := io.Copy(file, tarRdr); err != nil {
return err
}
return nil
}
func (e *backupExtractor) readBackup(tarRdr *tar.Reader) (string, error) {
dir, err := e.fileSystem.TempDir("", "")
if err != nil {
@ -83,13 +96,7 @@ func (e *backupExtractor) readBackup(tarRdr *tar.Reader) (string, error) {
}
// create the file
file, err := e.fileSystem.Create(target)
if err != nil {
return "", err
}
defer file.Close()
if _, err := io.Copy(file, tarRdr); err != nil {
if err := e.writeFile(target, tarRdr); err != nil {
e.log.Infof("error copying: %v", err)
return "", err
}