Backup Laravel-applikation på Dropbox
Det rekommenderas alltid att lagra säkerhetskopiering av applikationer i molnet. Du vet aldrig när du kan behöva återställa din webbplats från säkerhetskopian. Amazon S3, Google Cloud, Dropbox, etc. är några av de populära tjänsterna för att lagra din säkerhetskopia. I denna handledning studerar vi lagring av Laravel-säkerhetskopiering på Dropbox. Om du vill lagra den på Amazon S3, se vår artikel som lagrar Laravel-säkerhetskopiering på Amazon S3.
Dropbox erbjuder en API-tjänst som kan skicka säkerhetskopian från vår applikation till Dropbox. När det gäller Laravel måste vi konfigurera Laravel Filesystem och ställa in Dropbox som en av fillagren. Det kommer sedan att interagera med Dropbox API bakom kulisserna.
Under interaktion med Dropbox API måste vi ha en åtkomsttoken för Dropbox-kontot för auktorisering. Låt oss först ta tag i Dropbox-åtkomsttoken.
Hämta Dropbox Access Token
Skapa en Dropbox-applikation för att få åtkomsttoken. Vid inloggning klickar du på knappen ‘Skapa app’. I nästa steg kommer du att be om att välja ett API. Välj "Appmapp" under typen av åtkomst och ge din app namnet. Se skärmdumpen nedan.
Därefter, från fliken "Tillstånd", lägg till omfattningen av filer och mappar så att vår applikation kan skriva till Dropbox.
Slutligen väljer du "Ingen utgång" i fliken "Inställningar" i utgångsfältet för åtkomsttoken och klickar på knappen "Skapa" som ger dig en åtkomsttoken.
Konfigurera Laravel Filesystem för Dropbox
Laravel tillhandahåller ett filsystem som ger drivrutiner för lokal lagring, SFTP och Amazon S3. För att lägga till Dropbox som en drivrutin måste vi konfigurera den lite. Det kräver att du lägger till en Dropbox-adapter i Laravel-applikationen. Du kan göra det genom att följa stegen nedan.
Installera spatie / flysystem-dropbox- biblioteket med kommandot:
composer require spatie/flysystem-dropbox
När du installerar biblioteket skapar du en tjänsteleverantör DropboxServiceProvider
med kommandot nedan.
php artisan make:provider DropboxServiceProvider
Definiera sedan den anpassade drivrutinen dropbox
i boot
metoden för 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));
});
}
}
Registrera tjänsteleverantören DropboxServiceProvider
i filens providers
array config/app.php
.
'providers' => [
// ...
AppProvidersDropboxServiceProvider::class,
];
Därefter lägger du till dropbox-drivrutinen till filsystemets diskar. Öppna config/filesystems.php
filen och lägg till ‘dropbox’-elementet i disks
matrisen.
'disks' => [
...
...
'dropbox' => [
'driver' => 'dropbox',
'authorization_token' => env('DROPBOX_AUTH_TOKEN'),
],
],
Här får jag värdet av konstanten ‘DROPBOX_AUTH_TOKEN’ med env()
metoden. Det betyder att vi bör lägga till denna konstant i .env
filen.
.env
...
...
DROPBOX_AUTH_TOKEN=PASTE_ACCESS_TOKEN_HERE
Installera och konfigurera Laravel Backup Library
Hittills är vi klara med att lägga till Dropbox-adapter till Laravel-applikationen. Installera nu spatie / laravel-backup- biblioteket som gör att vi kan skicka säkerhetskopiering på de olika molntjänsterna inklusive Dropbox. Kör kommandot nedan för installation.
composer require spatie/laravel-backup
När biblioteket är installerat, publicera konfigurationsfilen för att config/backup.php
använda kommandot:
php artisan vendor:publish --provider="SpatieBackupBackupServiceProvider"
Efter detta öppnar du config/backup.php
och lägger till ‘dropbox’ i ‘disks’ array.
<?php
return [
.......
.......
'destination' => [
......
......
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
'dropbox',
],
......
......
Alternativt kan du också ställa in din e-postadress till vilken avisering som ska skickas om säkerhetskopieringsstatus. Du hittar det här alternativet i filens mail
array config/backup.php
.
Backup Laravel-applikation på Dropbox
Vi har slutfört alla grundläggande inställningar som krävs för att säkerhetskopiera Laravel-applikationen på Dropbox. Gå till terminalen och skjut kommandot nedan:
php artisan backup:run
Ovanstående kommando skapar en "Laravel" -mapp till ditt Dropbox-konto och lagrar backup-zip i den. Denna backup-zip innehåller dina Laravel-applikationsfiler, mappar och databas.
Detta är den manuella processen för att göra en Laravel-säkerhetskopia. Användaren kan också schemalägga säkerhetskopieringsuppgiften. För detta, lägg till koden nedan schedule
i app/Console/Kernel.php
filmetoden.
protected function schedule(Schedule $schedule)
{
$schedule->command('backup:run')->daily()->at('06:00');
}
Här planerar jag den dagliga säkerhetskopian kl 06:00. Användaren kan ändra den här tiden enligt deras krav.
Jag hoppas att du fick veta hur du lagrar en säkerhetskopia av Laravel-applikationen på Dropbox. Jag skulle vilja höra dina tankar och förslag i kommentarsektionen nedan.
relaterade artiklar
- Hur laddar jag upp filen till S3 med Laravel Filesystem
- Ladda upp filer till Amazon S3 med AWS PHP SDK
- Hur man laddar upp bilder till en annan server via FTP i Laravel