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

Update ark restore to not open every single file open during extracti…
This commit is contained in:
KubeKween
2019-03-08 14:59:09 -08:00
committed by GitHub
2 changed files with 15 additions and 7 deletions
+1
View File
@@ -0,0 +1 @@
Update velero restore to not open every single file open during extraction of the data
+14 -7
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
}