Sauvegarder l’application Laravel sur Dropbox
Il est toujours recommandé de stocker la sauvegarde des applications sur le cloud. Vous ne savez jamais quand vous devrez peut-être restaurer votre site à partir de la sauvegarde. Amazon S3, Google Cloud, Dropbox, etc. sont quelques-uns des services populaires pour stocker la sauvegarde de votre application. Dans ce tutoriel, nous étudions le stockage de la sauvegarde de l’application Laravel sur Dropbox. Si vous souhaitez le stocker sur Amazon S3, veuillez vous reporter à notre article sur le stockage de la sauvegarde Laravel sur Amazon S3.
Dropbox propose un service API qui peut envoyer la sauvegarde de notre application vers Dropbox. En ce qui concerne Laravel, nous devons configurer le système de fichiers Laravel et définir Dropbox comme l’un des stockages de fichiers. Il interagira ensuite avec l’API Dropbox dans les coulisses.
Lors de l’interaction avec l’API Dropbox, nous devons disposer d’un jeton d’accès du compte Dropbox pour l’autorisation. Commençons par saisir le jeton d’accès Dropbox.
Obtenir un jeton d’accès Dropbox
Pour obtenir le jeton d’accès, créez une application Dropbox. Une fois connecté, cliquez sur le bouton « Créer une application ». À l’étape suivante, vous demanderez de choisir une API. Sous le type d’accès, choisissez « Dossier d’applications » et donnez le nom à votre application. Reportez-vous à la capture d’écran ci-dessous.
Ensuite, à partir de l’onglet "Autorisation", ajoutez les étendues de fichiers et de dossiers afin que notre application puisse écrire dans Dropbox.
Enfin, depuis l’onglet ‘Paramètres’ choisissez ‘Pas d’expiration’ du champ Expiration du jeton d’accès et cliquez sur le bouton ‘Générer’ qui vous donnera un jeton d’accès.
Configurer le système de fichiers Laravel pour Dropbox
Laravel fournit un système de fichiers qui fournit des pilotes pour le stockage local, SFTP et Amazon S3. Afin d’ajouter Dropbox en tant que pilote, nous devons le configurer un peu. Cela vous oblige à ajouter un adaptateur Dropbox à l’application Laravel. Vous pouvez le faire en suivant les étapes ci-dessous.
Installez la bibliothèque spatie/flysystem-dropbox à l’aide de la commande :
composer require spatie/flysystem-dropbox
Lors de l’installation de la bibliothèque, créez un fournisseur de services DropboxServiceProvider
à l’aide de la commande ci-dessous.
php artisan make:provider DropboxServiceProvider
Ensuite, définissez le pilote personnalisé dropbox
dans la boot
méthode de 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));
});
}
}
Enregistrez le fournisseur DropboxServiceProvider
de services dans le providers
tableau de config/app.php
fichiers.
'providers' => [
// ...
AppProvidersDropboxServiceProvider::class,
];
Après cela, ajoutez le pilote ‘dropbox’ aux disques du système de fichiers. Ouvrez le config/filesystems.php
fichier et ajoutez l’élément ‘dropbox’ au disks
tableau.
'disks' => [
...
...
'dropbox' => [
'driver' => 'dropbox',
'authorization_token' => env('DROPBOX_AUTH_TOKEN'),
],
],
Ici, j’obtiens la valeur de la constante ‘DROPBOX_AUTH_TOKEN’ en utilisant la env()
méthode. Cela signifie que nous devons ajouter cette constante dans le .env
fichier.
.env
...
...
DROPBOX_AUTH_TOKEN=PASTE_ACCESS_TOKEN_HERE
Installer et configurer la bibliothèque de sauvegarde Laravel
Jusqu’à présent, nous avons terminé d’ajouter l’adaptateur Dropbox à l’application Laravel. Maintenant, installez la bibliothèque spatie/laravel-backup qui nous permet d’envoyer des sauvegardes sur les différents services cloud dont Dropbox. Exécutez la commande ci-dessous pour l’installation.
composer require spatie/laravel-backup
Une fois la bibliothèque installée, publiez le fichier de configuration à l’ config/backup.php
aide de la commande :
php artisan vendor:publish --provider="SpatieBackupBackupServiceProvider"
Après cela, ouvrez le config/backup.php
et ajoutez la ‘dropbox’ au tableau ‘disks’.
<?php
return [
.......
.......
'destination' => [
......
......
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
'dropbox',
],
......
......
En option, vous pouvez également définir votre adresse e-mail à laquelle une notification sera envoyée concernant l’état de la sauvegarde. Vous trouverez cette option dans le mail
tableau de config/backup.php
file.
Sauvegarder l’application Laravel sur Dropbox
Nous avons terminé toute la configuration de base requise pour la sauvegarde de l’application Laravel sur Dropbox. Rendez-vous sur le terminal et tirez sur la commande ci-dessous :
php artisan backup:run
La commande ci-dessus créera un dossier « Laravel » sur votre compte Dropbox et stockera le zip de sauvegarde à l’intérieur. Ce zip de sauvegarde contient vos fichiers, dossiers et base de données d’application Laravel.
Il s’agit du processus manuel de création d’une sauvegarde Laravel. L’utilisateur peut également planifier la tâche de sauvegarde. Pour cela, ajoutez le code ci-dessous à la schedule
méthode de app/Console/Kernel.php
fichier.
protected function schedule(Schedule $schedule)
{
$schedule->command('backup:run')->daily()->at('06:00');
}
Ici, je programme la sauvegarde quotidienne à 06h00. L’utilisateur peut modifier cette heure selon ses besoins.
J’espère que vous avez appris à stocker une sauvegarde de l’application Laravel sur Dropbox. J’aimerais entendre vos pensées et suggestions dans la section des commentaires ci-dessous.
Articles Liés
- Comment télécharger un fichier sur S3 à l’aide du système de fichiers Laravel
- Charger des fichiers sur Amazon S3 à l’aide d’AWS PHP SDK
- Comment télécharger des images sur un autre serveur via FTP dans Laravel