How to upload files to Google Drive in Laravel

Laravel 8 store backup on google drive example. In this tutorial, you will learn how to integrate google drive apis in laravel 8 app and store backup on google drive.

Google drive integration is easy in Laravel 8 app. And this is because of the spatie/laravel-backup package.

If you do not know how to google drive get client id and secret of google developer console, then you can create Google App in Google Developer Console by following the steps given below.

Step 1 – Visit Google Developer Console. And create a new project as following in below picture:

Step 2 – At that point visit to “Library” of google search console and search for “Google Drive API“:

Step 3 – Then enable the Google Drive API.

Step 4 – Then, Visit “Credentials” and click on the tab “OAuth Consent Screen“. Here you will get options to select user type, select “External” option, and click the “CREATE” button.

Step 5 – Now fill the form with following details like “App Name“, “User support email” and “Email” in the Developer contact information and click Save And Continue button. For other forms “Scopes“, “Test Users” and “Summary” click on Save And Continue button and go to the dashboard. Don’t worry about the other fields.

Step 6 – On the OAuth consent screen, you will see that the App’s Publishing status is testing. Here we need to publish the App. So, click the Publish App button and confirm.

Step 7 – Now, Visit back to Credentials, click the button that says “Create Credentials” and select “OAuth Client ID“.

Step 8 – For “Application type” choose “Web Application” and give it a name.
Enter your “Authorized redirect URIs”, your production URL ( — or create a separate production key later
Also add temporarily, because you will need to use that in the next step.

Finally, Click Create and take note of your Client ID and Client Secret

Step 9 – Now head to

In the top right corner, click the settings icon, check “Use your own OAuth credentials” and paste your Client ID and Client Secret.

Step 10 – on the left, scroll to “Drive API v3”, expand it, and check each of the scopes.

Click “Authorize APIs” and allow access to your account when prompted.

Step 11 – When you get to step 10, check “Auto-refresh the token before it expires” and click “Exchange authorization code for tokens“.

Step 12 – Now, complete this step and click on step 1 again and you should see your refresh token.

Step 13 – Now you need to folder ID that is optional. If you set folder ID to null, in that case, it is going to store backup files in the root path of Google Drive.

You can get the folder ID from the URL, as shown in the below image.

Now, you have got Google Client IDCLIENT SECRETREFRESH TOKEN, and FOLDER ID. Please save it in any text file. Because you need to update these values in the .env file of your laravel 8 app.

Laravel 8 Store Backup On Google Drive Tutorial

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

Step 1 – Install Laravel 8 App

In this step, open your terminal and navigate to local web server directory. Then type the following command on terminal to download laravel 8 app:

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

Step 2 – Connecting App to Database

In this step, navigate to root directory of download laravel app. And open .env file. Then configure database details like following:

 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

In this step, execute the following command on terminal to install spatie/laravel-backup package in laravel 8 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.

Now, you need to add google in the disk option in the config/backup.php.

'disks' => [

Step 4 – Setup Google Drive as Filesystem in Laravel

In this step, you need to execute the following command on terminal to install a Filesystem adapter for Google drive. So, run the following command in your terminal:

composer require nao-pon/flysystem-google-drive:~1.1
php artisan make:provider GoogleDriveServiceProvider

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

public function boot()
    \Storage::extend('google', function ($app, $config) {
        $client = new \Google_Client();
        $service = new \Google_Service_Drive($client);
        $adapter = new \Hypweb\Flysystem\GoogleDrive\GoogleDriveAdapter($service, $config['folderId']);
        return new \League\Flysystem\Filesystem($adapter);

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

'providers' => [
    // ...

Step 5 – Configure Google Drive Details

In this step, configure Google drive app with this laravel app. So, open your laravel 8 project in any text editor. Then navigate the config directory and open filesystem.php file and add the client id, secret and callback url:

return [
    // ...
    'disks' => [
        // ...
        'google' => [
            'driver' => 'google',
            'clientId' => env('GOOGLE_DRIVE_CLIENT_ID'),
            'clientSecret' => env('GOOGLE_DRIVE_CLIENT_SECRET'),
            'refreshToken' => env('GOOGLE_DRIVE_REFRESH_TOKEN'),
            'folderId' => env('GOOGLE_DRIVE_FOLDER_ID'),
        // ...
    // ...

And also you need to update .env file of laravel 8 app. In this environment file you need to add the following Google drive credentials:

Step 6 – Execute Backup Command

In this step, 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 8 store backup on google drive example tutorial, you have learned how to store laravel 8 app backup on google drive using spatie/