✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Резервне копіювання програми Laravel на Dropbox

17

Завжди рекомендується зберігати резервні копії програм у хмарі. Ви ніколи не знаєте, коли вам може знадобитися відновити ваш сайт із резервної копії. Amazon S3, Google Cloud, Dropbox тощо є одними з найпопулярніших сервісів для зберігання резервної копії вашої програми. У цьому посібнику ми вивчаємо збереження резервної копії додатків Laravel на Dropbox. Якщо ви хочете зберегти його на Amazon S3, зверніться до нашої статті про зберігання резервної копії Laravel на Amazon S3.

Dropbox пропонує послугу API, яка може надсилати резервну копію від нашого додатка до Dropbox. Що стосується Laravel, ми повинні налаштувати Laravel Filesystem і встановити Dropbox як одне із сховищ файлів. Потім він буде взаємодіяти з Dropbox API за кадром.

Під час взаємодії з Dropbox API нам потрібно мати маркер доступу до облікового запису Dropbox для авторизації. Давайте спочатку візьмемо маркер доступу Dropbox.

Отримайте маркер доступу Dropbox

Щоб отримати маркер доступу, створіть програму Dropbox. Після входу натисніть кнопку "Створити програму". На наступному кроці ви попросите вибрати API. Під типом доступу виберіть "Папка програми" та дайте назву своєму додатку. Зверніться до знімка екрана нижче.

Далі на вкладці "Дозвіл" додайте область файлів і папок, щоб наш додаток міг писати в Dropbox.

Резервне копіювання програми Laravel на Dropbox

Нарешті, на вкладці "Налаштування" виберіть "Без закінчення терміну дії" у полі закінчення терміну дії маркера доступу та натисніть кнопку "Створити", яка надасть вам маркер доступу.

Резервне копіювання програми Laravel на Dropbox

Налаштування файлової системи Laravel для Dropbox

Laravel пропонує файлову систему, яка надає драйвери для локального сховища, SFTP та Amazon S3. Для того, щоб додати Dropbox як драйвер, нам потрібно трохи його налаштувати. Потрібно додати адаптер Dropbox до програми Laravel. Ви можете зробити це, виконавши наведені нижче дії.

Встановіть бібліотеку spatie / flysystem-dropbox за допомогою команди:

composer require spatie/flysystem-dropbox

Після встановлення бібліотеки створіть постачальника послуг, DropboxServiceProviderвикористовуючи наведену нижче команду.

php artisan make:provider DropboxServiceProvider

Далі визначте власний драйвер dropboxу bootметоді DropboxServiceProvider.

appProvidersDropboxServiceProvider.php

<?php
 
namespace AppProviders;
 
use IlluminateSupportFacadesStorage;
use IlluminateSupportServiceProvider;
use LeagueFlysystemFilesystem;
use SpatieDropboxClient as DropboxClient;
use SpatieFlysystemDropboxDropboxAdapter;
 
class DropboxServiceProvider extends ServiceProvider
{
    ...
    ...
    public function boot()
    {
        Storage::extend('dropbox', function ($app, $config) {
            $client = new DropboxClient(
                $config['authorization_token']
            );
  
            return new Filesystem(new DropboxAdapter($client));
        });
    }
}

Зареєструйте постачальника послуг DropboxServiceProviderу providersмасиві config/app.phpфайлів.

'providers' => [
    // ...
    AppProvidersDropboxServiceProvider::class,
];

Після цього додайте драйвер "dropbox" на диски файлової системи. Відкрийте config/filesystems.phpфайл і додайте до disksмасиву елемент ‘dropbox’ .

'disks' => [
    ...
    ...
    'dropbox' => [
        'driver' => 'dropbox',
        'authorization_token' => env('DROPBOX_AUTH_TOKEN'),
    ],
],

Тут я отримую значення константи ‘DROPBOX_AUTH_TOKEN’ за допомогою env()методу. Це означає, що ми повинні додати цю константу у .envфайл.

.env

...
...
DROPBOX_AUTH_TOKEN=PASTE_ACCESS_TOKEN_HERE

Встановіть та налаштуйте бібліотеку резервного копіювання Laravel

Наразі ми закінчили з додаванням адаптера Dropbox до програми Laravel. Тепер встановіть бібліотеку spatie / laravel-backup, яка дозволяє нам надсилати резервні копії на різні хмарні служби, включаючи Dropbox. Виконайте наведену нижче команду для встановлення.

composer require spatie/laravel-backup

Після встановлення бібліотеки опублікуйте файл конфігурації за config/backup.phpдопомогою команди:

php artisan vendor:publish --provider="SpatieBackupBackupServiceProvider"

Після цього відкрийте config/backup.phpта додайте "dropbox" до масиву "disks".

<?php
    
return [
    
    .......
    .......
  
    'destination' => [
  
        ......
        ......
        /*
         * The disk names on which the backups will be stored.
         */
        'disks' => [
            'dropbox',
        ],
    ......
    ......

За бажанням ви також можете встановити свою електронну адресу, на яку буде надсилатися сповіщення про стан резервної копії. Ви знайдете цю опцію в mailмасиві config/backup.phpфайлу.

Резервне копіювання програми Laravel на Dropbox

Ми виконали всі основні налаштування, необхідні для резервного копіювання програми Laravel на Dropbox. Перейдіть до терміналу і виконайте команду нижче:

php artisan backup:run

Вищевказана команда створить папку ‘Laravel’ для вашого облікового запису Dropbox і збереже в ній резервний zip. Цей резервний zip-файл містить файли, папки та базу даних програми Laravel.

Резервне копіювання програми Laravel на Dropbox

Це ручний процес створення резервної копії Laravel. Користувач також може запланувати завдання резервного копіювання. Для цього додайте наведений нижче код до scheduleметоду app/Console/Kernel.phpфайлу.

protected function schedule(Schedule $schedule)
{
    $schedule->command('backup:run')->daily()->at('06:00');
}

Тут я планую щоденне резервне копіювання на 06:00. Користувач може змінити цей час відповідно до своїх вимог.

Сподіваюсь, ви дізналися про зберігання резервної копії програми Laravel на Dropbox. Я хотів би почути ваші думки та пропозиції у розділі коментарів нижче.

Пов’язані статті

Джерело запису: artisansweb.net

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі