mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-08-21 06:36:06 +00:00
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:
@@ -0,0 +1 @@
|
||||
Update velero restore to not open every single file open during extraction of the data
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user