Резервне копіювання програми Laravel на Dropbox
Завжди рекомендується зберігати резервні копії програм у хмарі. Ви ніколи не знаєте, коли вам може знадобитися відновити ваш сайт із резервної копії. 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 пропонує файлову систему, яка надає драйвери для локального сховища, 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. Користувач також може запланувати завдання резервного копіювання. Для цього додайте наведений нижче код до schedule
методу app/Console/Kernel.php
файлу.
protected function schedule(Schedule $schedule)
{
$schedule->command('backup:run')->daily()->at('06:00');
}
Тут я планую щоденне резервне копіювання на 06:00. Користувач може змінити цей час відповідно до своїх вимог.
Сподіваюсь, ви дізналися про зберігання резервної копії програми Laravel на Dropbox. Я хотів би почути ваші думки та пропозиції у розділі коментарів нижче.
Пов’язані статті
- Як завантажити файл на S3 за допомогою файлової системи Laravel
- Завантажте файли на Amazon S3 за допомогою AWS PHP SDK
- Як завантажити зображення на інший сервер через FTP в Laravel