Edit & Download (local) Backups (#436)

* Allow editing of backups

* pint updates

* setup of backup download

* allow download for local backup files

* delete uploaded files on delete of BackupFile

* pint updates

* S3 upload & download fixes

* Deletion of backup files

* support $ARCH selector for s3 installation

* delete files when deleting backup

* fixed ui issue

* adjustment

* Use system temp path for downloads

---------

Co-authored-by: Saeed Vaziry <mr.saeedvaziry@gmail.com>
This commit is contained in:
Richard Anderson
2025-01-25 20:59:35 +00:00
committed by GitHub
parent 465951fd1e
commit a73476c1dd
31 changed files with 382 additions and 184 deletions

View File

@ -159,12 +159,12 @@ public function runBackup(BackupFile $backupFile): void
// upload to storage
$upload = $backupFile->backup->storage->provider()->ssh($this->service->server)->upload(
$backupFile->tempPath(),
$backupFile->path(),
$backupFile->storagePath(),
);
// cleanup
$this->service->server->ssh()->exec('rm '.$backupFile->path());
$this->service->server->ssh()->exec('rm '.$backupFile->tempPath());
$backupFile->size = $upload['size'];
$backupFile->save();
@ -174,14 +174,14 @@ public function restoreBackup(BackupFile $backupFile, string $database): void
{
// download
$backupFile->backup->storage->provider()->ssh($this->service->server)->download(
$backupFile->storagePath(),
$backupFile->name.'.zip',
$backupFile->path(),
$backupFile->tempPath(),
);
$this->service->server->ssh()->exec(
$this->getScript($this->getScriptsDir().'/restore.sh', [
'database' => $database,
'file' => $backupFile->name,
'file' => rtrim($backupFile->tempPath(), '.zip'),
]),
'restore-database'
);