Laravel 9 Store Backup on Dropbox using Spatie Example

Store backup on Dropbox in laravel 9; Through this tutorial, i am going to show you how to integrate dropbox in laravel 9 app to store backup on dropbox using spatie/laravel-backup package.

Dropbox is a home for all your work. You can store and share files, collaborate on projects, and bring your best ideas to life—whether you’re working alone or with colleagues and clients. With Dropbox, all your files are backed up to the cloud and available online.

Before start this tutorial, you need to get access token from dropbox, then you can create dropbox App. So visit Dropbox Console. And create a new project as following in below picture:

Click “Generate” button to generate and get access token.

Laravel 9 Backup Store On Dropbox Example Tutorial

Use the below given steps to store backup on dropbox in laravel 9 apps:

  • Step 1 – Install Laravel 9 App
  • Step 2 – Connecting App to Database
  • Step 3 – Install spatie/laravel-backup
  • Step 4 – Import Dropbox as Filesystem in Laravel
  • Step 5 – Configure Dropbox Details
  • Step 6 – Execute Backup Command
  • Step 7 – Conclusion

Step 1 – Install Laravel 9 App

Open your terminal and navigate to local web server directory. Then type the following command on terminal to download laravel 9 app:

composer create-project --prefer-dist laravel/laravel Blog

Step 2 – Connecting App to Database

Navigate to root directory of download laravel app. And open .env file. Then configure database details like following:

 DB_CONNECTION=mysql 
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name here
DB_USERNAME=here database username here
DB_PASSWORD=here database password here

Step 3 – Install spatie/laravel-backup

Execute the following command on terminal to install spatie/laravel-backup package in laravel 9 app:

composer require spatie/laravel-backup

Then execute the following command on terminal to publish this installed package:

php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"

Note that, it will publish the configuration file in config/backup.php. Now, configure your backup according to your requirement.

Add dropbox details in the disk option in the config/backup.php.

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

Step 4 – Setup Dropbox as Filesystem in Laravel

Execute the following command on terminal to install a Filesystem adapter for Dropbox. So, run the following command in your terminal:

composer require spatie/flysystem-dropbox

Then execute the command on terminal to create service provider:

php artisan make:provider DropboxServiceProvider

Then, inside the boot() method add the Dropbox for the Laravel filesystem:

<?php
 
namespace App\Providers;
 
use Storage;
use League\Flysystem\Filesystem;
use Illuminate\Support\ServiceProvider;
use Spatie\Dropbox\Client as DropboxClient;
use Spatie\FlysystemDropbox\DropboxAdapter;
 
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));
        });
    }
}

After this, register the service provider by adding the following line in the providers array of config/app.php.

'providers' => [
    // ...
    App\Providers\DropboxDriveServiceProvider::class,
];

Step 5 – Configure Dropbox Details

Configure Dropbox app with this laravel app. So, open your laravel project in any text editor. Then navigate the config directory and open filesystem.php file and add the client id, secret and callback url:

<?php
   
return [
   
    // ...
   
    'disks' => [
   
        // ...
   
        'dropbox' => [
            'driver' => 'dropbox',
            'authorization_token' => env('DROPBOX_AUTH_TOKEN'),
        ],
   
    ],
];

Then update .env file of laravel 9 app. In this environment file you need to add the following Dropbox auth token:

DROPBOX_AUTH_TOKEN=<your token>

Step 6 – Execute Backup Command

Open your terminal and execute the following command to check the backup file is created or not:

php artisan backup:run

Step 7 – Conclusion

Laravel 9 store backup on dropbox example tutorial, you have learned how to store laravel 9 app backup on dropbox using spatie/laravel-backup.

Recommended Laravel Tutorials

Be First to Comment

Leave a Reply

Your email address will not be published.