yaleksandr89
@yaleksandr89
PHP developer

Spatie backup, как изменить папку для резервных копий и установить пароль на архив?

Здравствуйте.
Разбираюсь с пакетом spatie/laravel-backup. Появилось два вопроса:
  1. Все резеврные копии складываются в
    /storage/app/--------------------------------------------
    . Как поменять -------------------------------------------- на более понятное :)
  2. Наткнулся на статью, где показывалось, как устанавливать пароль на созданный архив. Сделал, как было указанно, но почему-то не срабатывает.

2) пункт чуть подробнее. Создал слушателя App\Listeners\EncryptBackupZip
EncryptBackupZip

<?php declare(strict_types=1);

namespace App\Listeners;

use ZipArchive;
use Illuminate\Support\Collection;
use Spatie\Backup\Events\BackupZipWasCreated;

class EncryptBackupZip
{
    /**
     * @param BackupZipWasCreated $event
     */
    public function handle(BackupZipWasCreated $event): void
    {
        $zip = new ZipArchive;
        $zip->open($event->pathToZip);
        $zip->setPassword(config('app.backup.password'));
        Collection::times($zip->numFiles, function ($i) use ($zip) {
            $zip->setEncryptionIndex($i - 1, ZipArchive::EM_AES_256);
        });
        $zip->close();
    }
}


В EventServiceProvider, добавил слушателя:
protected $listen = [
        Registered::class => [
            SendEmailVerificationNotification::class, // был
            EncryptBackupZip::class // добавил
        ],
    ];

В config/app.php добавил 'backup.password' => env('BACKUP_PASSWORD') (и соответственно в .env указал константу с паролем (BACKUP_PASSWORD = 'password'))

Отчистил кэш настроект: php artisan config:cache, далее запускаю команду создания бэкапа: php artisan backup:run. Копия создается, уведомление на почту падает, созданный архив без пароля. Подскажите где ошибся?
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
1 поменяй name в конфиге (backup.php)
2 слушатель не на активное событие.
Примерно так должно быть
protected $listen = [
        BackupZipWasCreated::class => [
            EncryptBackupZip::class
        ],
    ];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы