Laravel 10 Store Backup on Dropbox using Spatie Tutorial
Hey Artisan,
This detailed guide will cover laravel 10 project backup dropbox. you can understand a concept of how to store laravel 10 backup on dropbox. This article will give you a simple example of laravel 10 backup dropbox. In this article, we will implement a laravel 10 dropbox integration example.
Dropbox is a cloud-based file storage and sharing service that allows users to access their files from anywhere and share them with others. The company was founded in 2007 by Drew Houston and Arash Ferdowsi and is headquartered in San Francisco, California. With Dropbox, users can upload and store files such as documents, photos, and videos, which are then synced to all their devices. This means that users can access their files from their desktop computer, laptop, smartphone, or tablet, as long as they have an internet connection. Dropbox also offers offline access, which allows users to work on files even when they're not connected to the internet.
In this example, we will use Dropbox and Spatie Package to backup your laravel project and upload on your dropbox account.
So, let's follow the below step to make it done this example.
Step 1: Install Laravel
first of all, we need to get a fresh Laravel version application using the bellow command, So open your terminal OR command prompt and run the bellow command:
composer create-project laravel/laravel example-app
Step 2: Configure Dropbox as Driver
In this step, we will install spatie/flysystem-dropbox package for access dropbox api. Then we will add dropbox storage configuration on AppServiceProvider. Then also we will configure as driver on config/filesystems.php file. so, let's run following command to install package.
composer require spatie/flysystem-dropbox
Next, update AppServiceProvider file.
app/Providers/AppServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Filesystem\FilesystemAdapter;
use Illuminate\Support\Facades\Storage;
use League\Flysystem\Filesystem;
use Spatie\Dropbox\Client as DropboxClient;
use Spatie\FlysystemDropbox\DropboxAdapter;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
Storage::extend('dropbox', function (Application $app, array $config) {
$adapter = new DropboxAdapter(new DropboxClient(
$config['authorization_token']
));
return new FilesystemAdapter(
new Filesystem($adapter, $config),
$adapter,
$config
);
});
}
}
Now, let's add new driver on config/filesystems.php file.
config/filesystems.php
<?php
return [
...
...
'disks' => [
'dropbox' => [
'driver' => 'dropbox',
'key' => env('DROPBOX_APP_KEY'),
'secret' => env('DROPBOX_APP_SECRET'),
'authorization_token' => env('DROPBOX_AUTH_TOKEN'),
],
],
]
Step 3: Get Dropbox API Key & Secret & Access Token
In this step, we will need to dropbox api key, secret and access token to store files on Dropbox Account.
1. You need to go here Dropbox App Console and you need to create new app as like the following screenshot:
2. After click on "Create App" button, you need to add name of App.
3. Add "files.content.write" permission to your app.
4. Here you need to get API Key, API Secret and Access token from here and need to set on .env file.
You need to set all configuration on your .env file.
.env
DROPBOX_APP_KEY=wx0qfff2ly...
DROPBOX_APP_SECRET=gqdi00g...
DROPBOX_AUTH_TOKEN=sl.Bc5_aUxtGFDZP6...
Step 4: Install spatie/laravel-backup
Here, we will install and configure spatie/laravel-backup composer package to backup your laravel project and send it to dropbox account.
So, let's run following command:
composer require spatie/laravel-backup
Here, we will run a command to publish the Spatie package separately.
php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"
Above vendor publish command, published a new config/backup.php file in this file; in this file, you have to set backup values.
For instance, set dropbox name to disks property; this is the disk name that will store your backup.
config/backup.php
<?php
return [
...
...
'destination' => [
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
'dropbox',
],
],
Step 5: Backup Laravel App
Now, we are ready to take back of all laravel application. so, let's run following command:
php artisan backup:run
You will see the backup store in Dropbox account as like the below:
I hope it can help you...
Hardik Savani
I'm a full-stack developer, entrepreneur and owner of ItSolutionstuff.com. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Laravel, Angular, Vue, Node, Javascript, JQuery, Codeigniter and Bootstrap from the early stage. I believe in Hardworking and Consistency.
We are Recommending you
- Laravel 10 Crop Image Before Upload Example
- Laravel 10 Generate PDF and Send Email Example
- How to Create Zip File and Download in Laravel 10?
- Laravel 10 Auto Load More Data on Page Scroll using AJAX Example
- Laravel 10 Notification | Create Notification in Laravel 10
- Laravel 10 CKeditor Image Upload Example
- Laravel 10 Livewire Wizard Multi Step Form Tutorial
- Laravel 10 Restrict User Access From IP Address Example
- Laravel 10 Custom Validation Error Message Example
- Laravel 10 REST API Authentication using Sanctum Tutorial
- Laravel 10 React JS Auth Scaffolding Tutorial
- Laravel 10 Mail | Laravel 10 Send Mail Tutorial
- Laravel 10 Import Export Excel and CSV File Tutorial
- Laravel 10 Multiple File Upload Tutorial Example