Backup der Laravel-Anwendung auf Dropbox
Es wird immer empfohlen, Anwendungs-Backups in der Cloud zu speichern. Sie wissen nie, wann Sie Ihre Site möglicherweise aus dem Backup wiederherstellen müssen. Amazon S3, Google Cloud, Dropbox usw. sind einige der beliebtesten Dienste zum Speichern Ihrer Anwendungssicherung. In diesem Tutorial untersuchen wir das Speichern von Laravel-Anwendungssicherungen in Dropbox. Wenn Sie es auf Amazon S3 speichern möchten, lesen Sie bitte unseren Artikel Laravel-Backup auf Amazon S3 speichern .
Dropbox bietet einen API-Dienst, der das Backup von unserer Anwendung an Dropbox senden kann. Wenn es um Laravel geht, müssen wir das Laravel-Dateisystem konfigurieren und Dropbox als einen der Dateispeicher festlegen. Es interagiert dann hinter den Kulissen mit der Dropbox-API.
Während der Interaktion mit der Dropbox-API benötigen wir zur Autorisierung ein Zugriffstoken des Dropbox-Kontos. Nehmen wir zuerst das Dropbox-Zugriffstoken.
Dropbox-Zugriffstoken abrufen
Um das Zugriffstoken zu erhalten, erstellen Sie eine Dropbox-Anwendung. Klicken Sie nach der Anmeldung auf die Schaltfläche „App erstellen”. Im nächsten Schritt werden Sie nach der Auswahl einer API fragen. Wählen Sie bei der Zugriffsart „App-Ordner” und geben Sie Ihrer App einen Namen. Siehe den Screenshot unten.
Fügen Sie als Nächstes auf der Registerkarte "Berechtigung" die Bereiche von Dateien und Ordnern hinzu, damit unsere Anwendung in Dropbox schreiben kann.
Wählen Sie schließlich auf der Registerkarte "Einstellungen" im Feld "Ablauf des Zugriffstokens" "Kein Ablauf" aus und klicken Sie auf die Schaltfläche "Generieren", die Ihnen ein Zugriffstoken gibt.
Konfigurieren Sie das Laravel-Dateisystem für Dropbox
Laravel bietet ein Dateisystem, das Treiber für lokalen Speicher, SFTP und Amazon S3 bereitstellt. Um Dropbox als Treiber hinzuzufügen, müssen wir es ein wenig konfigurieren. Dazu müssen Sie der Laravel-Anwendung einen Dropbox-Adapter hinzufügen. Sie können dies tun, indem Sie die folgenden Schritte ausführen.
Installieren Sie die spatie/flysystem-dropbox- Bibliothek mit dem Befehl:
composer require spatie/flysystem-dropbox
Erstellen Sie DropboxServiceProvider
nach der Installation der Bibliothek einen Dienstanbieter mit dem folgenden Befehl.
php artisan make:provider DropboxServiceProvider
Als nächstes definieren Sie den benutzerdefinierten Treiber dropbox
in der boot
Methode von 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));
});
}
}
Registrieren Sie den Dienstanbieter DropboxServiceProvider
im Datei- providers
Array config/app.php
.
'providers' => [
// ...
AppProvidersDropboxServiceProvider::class,
];
Fügen Sie danach den ‘Dropbox’-Treiber zu den Dateisystemdisketten hinzu. Öffnen Sie die config/filesystems.php
Datei und fügen Sie dem disks
Array das Element ‘dropbox’ hinzu .
'disks' => [
...
...
'dropbox' => [
'driver' => 'dropbox',
'authorization_token' => env('DROPBOX_AUTH_TOKEN'),
],
],
Hier erhalte ich den Wert der Konstanten ‘DROPBOX_AUTH_TOKEN’ mit der env()
Methode. Das bedeutet, dass wir diese Konstante in die .env
Datei einfügen sollten .
.env
...
...
DROPBOX_AUTH_TOKEN=PASTE_ACCESS_TOKEN_HERE
Installieren und konfigurieren Sie die Laravel-Sicherungsbibliothek
Bisher haben wir den Dropbox-Adapter zur Laravel-Anwendung hinzugefügt. Installieren Sie nun die Spatie/Laravel-Backup- Bibliothek, die es uns ermöglicht, Backups an die verschiedenen Cloud-Dienste einschließlich Dropbox zu senden. Führen Sie den folgenden Befehl zur Installation aus.
composer require spatie/laravel-backup
Sobald die Bibliothek installiert ist, veröffentlichen Sie die Konfigurationsdatei config/backup.php
mit dem folgenden Befehl:
php artisan vendor:publish --provider="SpatieBackupBackupServiceProvider"
Öffnen Sie danach die config/backup.php
und fügen Sie die ‘Dropbox’ zum Array ‘disks’ hinzu.
<?php
return [
.......
.......
'destination' => [
......
......
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
'dropbox',
],
......
......
Optional können Sie auch Ihre E-Mail-Adresse festlegen, an die eine Benachrichtigung über den Backup-Status gesendet wird. Sie finden diese Option im mail
Array von config/backup.php
file.
Backup der Laravel-Anwendung auf Dropbox
Wir haben alle grundlegenden Einstellungen abgeschlossen, die zum Sichern der Laravel-Anwendung auf Dropbox erforderlich sind. Gehen Sie zum Terminal und schießen Sie den folgenden Befehl:
php artisan backup:run
Der obige Befehl erstellt einen ‘Laravel’-Ordner in Ihrem Dropbox-Konto und speichert die Backup-ZIP-Datei darin. Diese Backup-ZIP-Datei enthält Ihre Laravel-Anwendungsdateien, -ordner und -datenbank.
Dies ist der manuelle Vorgang zum Erstellen eines Laravel-Backups. Der Benutzer kann auch die Sicherungsaufgabe planen. Fügen Sie dazu den folgenden Code zur schedule
Methode der app/Console/Kernel.php
Datei hinzu.
protected function schedule(Schedule $schedule)
{
$schedule->command('backup:run')->daily()->at('06:00');
}
Hier plane ich das tägliche Backup um 06:00 Uhr. Der Benutzer kann diese Zeit nach seinen Anforderungen ändern.
Ich hoffe, Sie haben etwas über das Speichern eines Backups der Laravel-Anwendung auf Dropbox erfahren. Ich würde gerne Ihre Gedanken und Vorschläge im Kommentarbereich unten hören.
Zum Thema passende Artikel
- So laden Sie eine Datei mit dem Laravel-Dateisystem auf S3 hoch
- Hochladen von Dateien auf Amazon S3 mit AWS PHP SDK
- So laden Sie Bilder über FTP in Laravel auf einen anderen Server hoch