✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Kopia zapasowa aplikacji Laravel na Dropbox

29

Zawsze zalecane jest przechowywanie kopii zapasowej aplikacji w chmurze. Nigdy nie wiadomo, kiedy trzeba będzie przywrócić witrynę z kopii zapasowej. Amazon S3, Google Cloud, Dropbox itp. to tylko niektóre z popularnych usług do przechowywania kopii zapasowych aplikacji. W tym samouczku zajmiemy się przechowywaniem kopii zapasowych aplikacji Laravel w Dropbox. Jeśli chcesz go przechowywać w Amazon S3, zapoznaj się z naszym artykułem dotyczącym przechowywania kopii zapasowej Laravel w Amazon S3.

Dropbox oferuje usługę API, która może wysłać kopię zapasową z naszej aplikacji do Dropbox. Jeśli chodzi o Laravela, musimy skonfigurować Laravel Filesystem i ustawić Dropbox jako jeden z magazynów plików. Następnie będzie wchodzić w interakcje z Dropbox API za kulisami.

Podczas interakcji z Dropbox API musimy posiadać token dostępu do konta Dropbox w celu autoryzacji. Najpierw zdobądźmy token dostępu Dropbox.

Uzyskaj token dostępu do Dropbox

Aby uzyskać token dostępu, utwórz aplikację Dropbox. Po zalogowaniu kliknij przycisk „Utwórz aplikację". W kolejnym kroku poprosisz o wybór API. Pod typem dostępu wybierz „Folder aplikacji” i nadaj nazwę swojej aplikacji. Zobacz zrzut ekranu poniżej.

Następnie z zakładki „Uprawnienia” dodaj zakresy plików i folderów, aby nasza aplikacja mogła zapisywać do Dropbox.

Kopia zapasowa aplikacji Laravel na Dropbox

Na koniec z zakładki „Ustawienia” wybierz „Bez ważności” w polu Wygaśnięcie tokena dostępu i kliknij przycisk „Generuj”, który da Ci token dostępu.

Kopia zapasowa aplikacji Laravel na Dropbox

Skonfiguruj system plików Laravel dla Dropbox

Laravel dostarcza system plików, który dostarcza sterowniki do lokalnej pamięci masowej, SFTP i Amazon S3. Aby dodać Dropbox jako sterownik, musimy go trochę skonfigurować. Wymaga dodania adaptera Dropbox do aplikacji Laravel. Możesz to zrobić, wykonując poniższe czynności.

Zainstaluj bibliotekę spatie/flysystem-dropbox za pomocą polecenia:

composer require spatie/flysystem-dropbox

Po zainstalowaniu biblioteki utwórz dostawcę usług DropboxServiceProviderza pomocą poniższego polecenia.

php artisan make:provider DropboxServiceProvider

Następnie zdefiniuj niestandardowy sterownik dropboxw bootmetodzie 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));
        });
    }
}

Zarejestruj dostawcę usług DropboxServiceProviderw providerstablicy config/app.phpplików.

'providers' => [
    // ...
    AppProvidersDropboxServiceProvider::class,
];

Następnie dodaj sterownik „dropbox” do dysków systemu plików. Otwórz config/filesystems.phpplik i dodaj element „dropbox” do diskstablicy.

'disks' => [
    ...
    ...
    'dropbox' => [
        'driver' => 'dropbox',
        'authorization_token' => env('DROPBOX_AUTH_TOKEN'),
    ],
],

Tutaj otrzymuję wartość stałej „DROPBOX_AUTH_TOKEN” przy użyciu env()metody. Oznacza to, że powinniśmy dodać tę stałą w .envpliku.

.env

...
...
DROPBOX_AUTH_TOKEN=PASTE_ACCESS_TOKEN_HERE

Zainstaluj i skonfiguruj bibliotekę kopii zapasowych Laravel

Na razie skończyliśmy z dodawaniem adaptera Dropbox do aplikacji Laravel. Teraz zainstaluj bibliotekę kopii zapasowych spatie/laravel, która pozwala nam wysyłać kopie zapasowe do różnych usług w chmurze, w tym Dropbox. Uruchom poniższe polecenie w celu instalacji.

composer require spatie/laravel-backup

Po zainstalowaniu biblioteki opublikuj plik konfiguracyjny config/backup.phpza pomocą polecenia:

php artisan vendor:publish --provider="SpatieBackupBackupServiceProvider"

Następnie otwórz config/backup.phpi dodaj „dropbox” do tablicy „disk”.

<?php
    
return [
    
    .......
    .......
  
    'destination' => [
  
        ......
        ......
        /*
         * The disk names on which the backups will be stored.
         */
        'disks' => [
            'dropbox',
        ],
    ......
    ......

Opcjonalnie możesz również ustawić swój adres e-mail, na który będzie wysyłane powiadomienie o stanie kopii zapasowej. Tę opcję znajdziesz w mailtablicy config/backup.phpfile.

Kopia zapasowa aplikacji Laravel na Dropbox

Zakończyliśmy wszystkie podstawowe ustawienia wymagane do utworzenia kopii zapasowej aplikacji Laravel w Dropbox. Podejdź do terminala i strzel poniższe polecenie:

php artisan backup:run

Powyższe polecenie utworzy folder „Laravel” na Twoim koncie Dropbox i przechowa w nim kopię zapasową zip. Ten zip kopii zapasowej zawiera pliki, foldery i bazę danych aplikacji Laravel.

Kopia zapasowa aplikacji Laravel na Dropbox

Jest to ręczny proces tworzenia kopii zapasowej Laravel. Użytkownik może również zaplanować zadanie tworzenia kopii zapasowej. W tym celu dodaj poniższy kod do schedulemetody app/Console/Kernel.phppliku.

protected function schedule(Schedule $schedule)
{
    $schedule->command('backup:run')->daily()->at('06:00');
}

Tutaj planuję codzienną kopię zapasową o 06:00. Użytkownik może zmienić ten czas zgodnie z ich wymaganiami.

Mam nadzieję, że dowiedziałeś się o przechowywaniu kopii zapasowej aplikacji Laravel w Dropbox. Chciałbym usłyszeć wasze przemyślenia i sugestie w sekcji komentarzy poniżej.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów