Merge pull request #576 from csalzano/fix/remote-disk-backup-listing

Fix remote disk backups never appear in backup listing
This commit is contained in:
mchev
2026-03-26 09:16:13 +01:00
committed by GitHub
3 changed files with 16 additions and 3 deletions

View File

@@ -5,6 +5,7 @@
namespace App\Http\Controllers\V1\Admin\Backup; namespace App\Http\Controllers\V1\Admin\Backup;
use App\Jobs\CreateBackupJob; use App\Jobs\CreateBackupJob;
use App\Models\FileDisk;
use App\Rules\Backup\PathToZip; use App\Rules\Backup\PathToZip;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@@ -27,6 +28,16 @@ class BackupsController extends ApiController
$configuredBackupDisks = config('backup.backup.destination.disks'); $configuredBackupDisks = config('backup.backup.destination.disks');
try { try {
if ($request->file_disk_id) {
$fileDisk = FileDisk::find($request->file_disk_id);
if ($fileDisk) {
$fileDisk->setConfig();
$prefix = env('DYNAMIC_DISK_PREFIX', 'temp_');
config(['backup.backup.destination.disks' => [$prefix.$fileDisk->driver]]);
$configuredBackupDisks = config('backup.backup.destination.disks');
}
}
$backupDestination = BackupDestination::create(config('filesystems.default'), config('backup.backup.name')); $backupDestination = BackupDestination::create(config('filesystems.default'), config('backup.backup.name'));
$backups = Cache::remember("backups-{$request->file_disk_id}", now()->addSeconds(4), function () use ($backupDestination) { $backups = Cache::remember("backups-{$request->file_disk_id}", now()->addSeconds(4), function () use ($backupDestination) {

View File

@@ -167,14 +167,14 @@ async function loadDisksData() {
let res = await diskStore.fetchDisks({ limit: 'all' }) let res = await diskStore.fetchDisks({ limit: 'all' })
if (res.data.error) { if (res.data.error) {
} }
filters.selected_disk = res.data.data.find((disk) => disk.set_as_default == 0) filters.selected_disk = res.data.data.find((disk) => disk.set_as_default == 1) ?? res.data.data[0]
isFetchingInitialData.value = false isFetchingInitialData.value = false
} }
async function fetchBackupsData({ page, filter, sort }) { async function fetchBackupsData({ page, filter, sort }) {
let data = { let data = {
disk: filters.selected_disk.driver, disk: filters.selected_disk.driver,
filed_disk_id: filters.selected_disk.id, file_disk_id: filters.selected_disk.id,
} }
isFetchingInitialData.value = true isFetchingInitialData.value = true

View File

@@ -50,9 +50,11 @@ test('create backup', function () {
$response = getJson("/api/v1/backups?disk={$disk->driver}&&file_disk_id={$disk->id}"); $response = getJson("/api/v1/backups?disk={$disk->driver}&&file_disk_id={$disk->id}");
$prefix = env('DYNAMIC_DISK_PREFIX', 'temp_');
$response->assertStatus(200)->assertJson([ $response->assertStatus(200)->assertJson([
'disks' => [ 'disks' => [
'local', $prefix.$disk->driver,
], ],
]); ]);
}); });