Faça backup do aplicativo Laravel no Dropbox
Armazenar o backup do aplicativo na nuvem é sempre recomendado. Você nunca sabe quando pode precisar restaurar seu site a partir do backup. Amazon S3, Google Cloud, Dropbox, etc. são alguns dos serviços populares para armazenar o backup de seu aplicativo. Neste tutorial, estudamos como armazenar o backup do aplicativo Laravel no Dropbox. Se você deseja armazená-lo no Amazon S3, consulte nosso artigo como armazenar o backup do Laravel no Amazon S3.
O Dropbox oferece um serviço API que pode enviar o backup de nosso aplicativo para o Dropbox. Quando se trata do Laravel, temos que configurar o sistema de arquivos Laravel e definir o Dropbox como um dos armazenadores de arquivos. Em seguida, ele irá interagir com a API do Dropbox nos bastidores.
Durante a interação com a API do Dropbox, precisamos ter um token de acesso da conta do Dropbox para autorização. Vamos primeiro pegar o token de acesso do Dropbox.
Obtenha o token de acesso do Dropbox
Para obter o token de acesso, crie um aplicativo Dropbox. Após o login, clique no botão ‘Criar aplicativo’. Na próxima etapa, você solicitará a escolha de uma API. No tipo de acesso, escolha ‘Pasta do aplicativo’ e dê o nome ao seu aplicativo. Consulte a imagem abaixo.
Em seguida, na guia ‘Permissão’, adicione os escopos de arquivos e pastas para que nosso aplicativo possa gravar no Dropbox.
Por fim, na guia ‘Configurações’, escolha ‘Sem expiração’ no campo de expiração do token de acesso e clique no botão ‘Gerar’ que lhe dará um token de acesso.
Configurar o sistema de arquivos Laravel para o Dropbox
O Laravel fornece um sistema de arquivos que fornece drivers para armazenamento local, SFTP e Amazon S3. Para adicionar o Dropbox como driver, precisamos configurá-lo um pouco. Requer que você adicione um adaptador Dropbox ao aplicativo Laravel. Você pode fazer isso seguindo as etapas abaixo.
Instale a biblioteca spatie / flysystem-dropbox usando o comando:
composer require spatie/flysystem-dropbox
Ao instalar a biblioteca, crie um provedor de serviços DropboxServiceProvider
usando o comando abaixo.
php artisan make:provider DropboxServiceProvider
Em seguida, defina o driver personalizado dropbox
no boot
método 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));
});
}
}
Registre o provedor DropboxServiceProvider
de serviços na providers
matriz do config/app.php
arquivo.
'providers' => [
// ...
AppProvidersDropboxServiceProvider::class,
];
Depois disso, adicione o driver ‘dropbox’ aos discos do sistema de arquivos. Abra o config/filesystems.php
arquivo e adicione o elemento ‘dropbox’ ao disks
array.
'disks' => [
...
...
'dropbox' => [
'driver' => 'dropbox',
'authorization_token' => env('DROPBOX_AUTH_TOKEN'),
],
],
Aqui, estou obtendo o valor da constante ‘DROPBOX_AUTH_TOKEN’ usando o env()
método. Isso significa que devemos adicionar essa constante no .env
arquivo.
.env
...
...
DROPBOX_AUTH_TOKEN=PASTE_ACCESS_TOKEN_HERE
Instalar e configurar a biblioteca de backup do Laravel
Até agora, concluímos a adição do adaptador Dropbox ao aplicativo Laravel. Agora, instale a biblioteca spatie / laravel-backup que nos permite enviar backup nos diferentes serviços em nuvem, incluindo Dropbox. Execute o comando abaixo para instalação.
composer require spatie/laravel-backup
Assim que a biblioteca estiver instalada, publique o arquivo de configuração config/backup.php
usando o comando:
php artisan vendor:publish --provider="SpatieBackupBackupServiceProvider"
Depois disso, abra config/backup.php
e adicione a ‘caixa de depósito’ ao array ‘discos’.
<?php
return [
.......
.......
'destination' => [
......
......
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
'dropbox',
],
......
......
Opcionalmente, você também pode definir seu endereço de e-mail para o qual uma notificação será enviada sobre o status do backup. Você encontrará esta opção na mail
matriz do config/backup.php
arquivo.
Faça backup do aplicativo Laravel no Dropbox
Concluímos todas as configurações básicas necessárias para fazer o backup do aplicativo Laravel no Dropbox. Vá até o terminal e atire no comando abaixo:
php artisan backup:run
O comando acima irá criar uma pasta ‘Laravel’ para sua conta do Dropbox e armazenar o zip de backup dentro dela. Este zip de backup contém os arquivos, pastas e banco de dados do aplicativo Laravel.
Este é o processo manual de fazer um backup do Laravel. O usuário também pode agendar a tarefa de backup. Para isso, adicione o código abaixo ao schedule
método de app/Console/Kernel.php
arquivo.
protected function schedule(Schedule $schedule)
{
$schedule->command('backup:run')->daily()->at('06:00');
}
Aqui, agendo o backup diário para as 6h. O usuário pode alterar este tempo de acordo com sua necessidade.
Espero que você saiba como armazenar um backup do aplicativo Laravel no Dropbox. Eu gostaria de ouvir seus pensamentos e sugestões na seção de comentários abaixo.
Artigos relacionados
- Como fazer upload de arquivo para S3 usando o sistema de arquivos Laravel
- Carregar arquivos para o Amazon S3 usando AWS PHP SDK
- Como fazer upload de imagens para outro servidor via FTP no Laravel