Backup dell’applicazione Laravel su Dropbox
Si consiglia sempre di archiviare il backup dell’applicazione sul cloud. Non sai mai quando potresti aver bisogno di ripristinare il tuo sito dal backup. Amazon S3, Google Cloud, Dropbox, ecc. sono alcuni dei servizi più diffusi per archiviare il backup delle applicazioni. In questo tutorial, studiamo la memorizzazione del backup dell’applicazione Laravel su Dropbox. Se desideri archiviarlo su Amazon S3, fai riferimento al nostro articolo sull’archiviazione del backup di Laravel su Amazon S3.
Dropbox offre un servizio API in grado di inviare il backup dalla nostra applicazione a Dropbox. Quando si tratta di Laravel, dobbiamo configurare Laravel Filesystem e impostare Dropbox come uno dei file di archiviazione. Interagirà quindi con l’API Dropbox dietro le quinte.
Durante l’interazione con l’API Dropbox, è necessario disporre di un token di accesso dell’account Dropbox per l’autorizzazione. Prendiamo prima il token di accesso Dropbox.
Ottieni token di accesso Dropbox
Per ottenere il token di accesso, crea un’applicazione Dropbox. Una volta effettuato l’accesso, fare clic sul pulsante "Crea app". Nel passaggio successivo, ti verrà chiesto di scegliere un’API. Sotto il tipo di accesso, scegli "Cartella app" e dai il nome alla tua app. Fare riferimento allo screenshot qui sotto.
Successivamente, dalla scheda "Autorizzazione" aggiungi gli ambiti di file e cartelle in modo che la nostra applicazione possa scrivere su Dropbox.
Infine, dalla scheda "Impostazioni" scegli "Nessuna scadenza" del campo Scadenza token di accesso e fai clic sul pulsante "Genera" che ti darà un token di accesso.
Configura Laravel Filesystem per Dropbox
Laravel fornisce un filesystem che fornisce i driver per l’archiviazione locale, SFTP e Amazon S3. Per aggiungere Dropbox come driver, dobbiamo configurarlo un po’. Richiede l’aggiunta di un adattatore Dropbox all’applicazione Laravel. Puoi farlo seguendo i passaggi seguenti.
Installa la libreria spatie/flysystem-dropbox usando il comando:
composer require spatie/flysystem-dropbox
Dopo aver installato la libreria, creare un provider di servizi DropboxServiceProvider
utilizzando il comando seguente.
php artisan make:provider DropboxServiceProvider
Quindi, definire il driver personalizzato dropbox
nel boot
metodo di 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));
});
}
}
Registra il fornitore DropboxServiceProvider
di servizi providers
nell’array di config/app.php
file.
'providers' => [
// ...
AppProvidersDropboxServiceProvider::class,
];
Successivamente, aggiungi il driver "dropbox" ai dischi del filesystem. Apri il config/filesystems.php
file e aggiungi l’elemento ‘dropbox’ disks
all’array.
'disks' => [
...
...
'dropbox' => [
'driver' => 'dropbox',
'authorization_token' => env('DROPBOX_AUTH_TOKEN'),
],
],
Qui, sto ottenendo il valore della costante ‘DROPBOX_AUTH_TOKEN’ usando il env()
metodo. Significa che dovremmo aggiungere questa costante nel .env
file.
.env
...
...
DROPBOX_AUTH_TOKEN=PASTE_ACCESS_TOKEN_HERE
Installa e configura la libreria di backup di Laravel
Finora, abbiamo finito con l’aggiunta dell’adattatore Dropbox all’applicazione Laravel. Ora installa la libreria spatie/laravel-backup che ci consente di inviare backup sui diversi servizi cloud, incluso Dropbox. Eseguire il comando seguente per l’installazione.
composer require spatie/laravel-backup
Una volta installata la libreria, pubblica il file di configurazione config/backup.php
utilizzando il comando:
php artisan vendor:publish --provider="SpatieBackupBackupServiceProvider"
Dopodiché, apri config/backup.php
e aggiungi "dropbox" all’array "disks".
<?php
return [
.......
.......
'destination' => [
......
......
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
'dropbox',
],
......
......
Facoltativamente, puoi anche impostare il tuo indirizzo e-mail a cui verrà inviata la notifica sullo stato del backup. Troverai questa opzione mail
nell’array di config/backup.php
file.
Backup dell’applicazione Laravel su Dropbox
Abbiamo completato tutta la configurazione di base richiesta per il backup dell’applicazione Laravel su Dropbox. Vai al terminale e spara il comando qui sotto:
php artisan backup:run
Il comando sopra creerà una cartella "Laravel" sul tuo account Dropbox e memorizzerà lo zip di backup al suo interno. Questo zip di backup contiene i file, le cartelle e il database dell’applicazione Laravel.
Questo è il processo manuale per eseguire un backup di Laravel. L’utente può anche pianificare l’attività di backup. Per questo, aggiungi il codice seguente al schedule
metodo di app/Console/Kernel.php
file.
protected function schedule(Schedule $schedule)
{
$schedule->command('backup:run')->daily()->at('06:00');
}
Qui pianifico il backup giornaliero alle 06:00. L’utente può modificare questa volta in base alle proprie esigenze.
Spero che tu sappia come archiviare un backup dell’applicazione Laravel su Dropbox. Mi piacerebbe sentire i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.
articoli Correlati
- Come caricare file su S3 utilizzando Laravel Filesystem
- Carica file su Amazon S3 utilizzando AWS PHP SDK
- Come caricare immagini su un altro server tramite FTP in Laravel