Copia de seguridad de la aplicación Laravel en Dropbox
Siempre se recomienda almacenar la copia de seguridad de la aplicación en la nube. Nunca se sabe cuándo es posible que deba restaurar su sitio desde la copia de seguridad. Amazon S3, Google Cloud, Dropbox, etc. son algunos de los servicios populares para almacenar la copia de seguridad de su aplicación. En este tutorial, estudiamos cómo almacenar la copia de seguridad de la aplicación Laravel en Dropbox. Si desea almacenarlo en Amazon S3, consulte nuestro artículo sobre el almacenamiento de la copia de seguridad de Laravel en Amazon S3.
Dropbox ofrece un servicio de API que puede enviar la copia de seguridad de nuestra aplicación a Dropbox. Cuando se trata de Laravel, tenemos que configurar Laravel Filesystem y configurar Dropbox como uno de los archivos de almacenamiento. Luego interactuará con la API de Dropbox entre bastidores.
Durante la interacción con la API de Dropbox, necesitamos tener un token de acceso de la cuenta de Dropbox para la autorización. Primero tomemos el token de acceso a Dropbox.
Obtener token de acceso a Dropbox
Para obtener el token de acceso, cree una aplicación de Dropbox. Al iniciar sesión, haga clic en el botón ‘Crear aplicación’. En el siguiente paso, le pedirá que elija una API. Debajo del tipo de acceso, elija ‘Carpeta de aplicaciones’ y dé el nombre a su aplicación. Consulte la captura de pantalla a continuación.
A continuación, desde la pestaña ‘Permiso’ agregue los alcances de los archivos y carpetas para que nuestra aplicación pueda escribir en Dropbox.
Finalmente, desde la pestaña ‘Configuración’, elija ‘Sin vencimiento’ del campo de vencimiento del token de acceso y haga clic en el botón ‘Generar’ que le dará un token de acceso.
Configurar el sistema de archivos Laravel para Dropbox
Laravel proporciona un sistema de archivos que proporciona controladores para almacenamiento local, SFTP y Amazon S3. Para agregar Dropbox como controlador, necesitamos configurarlo un poco. Requiere que agregue un adaptador de Dropbox a la aplicación Laravel. Puede hacerlo siguiendo los pasos a continuación.
Instale la biblioteca Spatie / Flysystem-Dropbox con el comando:
composer require spatie/flysystem-dropbox
Al instalar la biblioteca, cree un proveedor de servicios DropboxServiceProvider
usando el siguiente comando.
php artisan make:provider DropboxServiceProvider
A continuación, defina el controlador personalizado dropbox
en el 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 el proveedor de servicios DropboxServiceProvider
en la providers
matriz de config/app.php
archivos.
'providers' => [
// ...
AppProvidersDropboxServiceProvider::class,
];
Después de esto, agregue el controlador ‘dropbox’ a los discos del sistema de archivos. Abra el config/filesystems.php
archivo y agregue el elemento ‘dropbox’ a la disks
matriz.
'disks' => [
...
...
'dropbox' => [
'driver' => 'dropbox',
'authorization_token' => env('DROPBOX_AUTH_TOKEN'),
],
],
Aquí, obtengo el valor de la constante ‘DROPBOX_AUTH_TOKEN’ usando el env()
método. Significa que debemos agregar esta constante en el .env
archivo.
.env
...
...
DROPBOX_AUTH_TOKEN=PASTE_ACCESS_TOKEN_HERE
Instalar y configurar la biblioteca de copia de seguridad de Laravel
Hasta ahora, hemos terminado de agregar el adaptador de Dropbox a la aplicación Laravel. Ahora, instale la biblioteca Spatie / Laravel-Backup que nos permite enviar copias de seguridad en los diferentes servicios en la nube, incluido Dropbox. Ejecute el siguiente comando para la instalación.
composer require spatie/laravel-backup
Una vez que la biblioteca esté instalada, publique el archivo de configuración config/backup.php
usando el comando:
php artisan vendor:publish --provider="SpatieBackupBackupServiceProvider"
Después de esto, abra config/backup.php
y agregue el ‘dropbox’ a la matriz de ‘discos’.
<?php
return [
.......
.......
'destination' => [
......
......
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
'dropbox',
],
......
......
Opcionalmente, también puede configurar su dirección de correo electrónico a la que se enviará una notificación sobre el estado de la copia de seguridad. Encontrará esta opción en la mail
matriz de config/backup.php
archivos.
Copia de seguridad de la aplicación Laravel en Dropbox
Hemos completado toda la configuración básica necesaria para realizar una copia de seguridad de la aplicación Laravel en Dropbox. Ve a la terminal y dispara el siguiente comando:
php artisan backup:run
El comando anterior creará una carpeta ‘Laravel’ en su cuenta de Dropbox y almacenará el zip de respaldo en su interior. Este zip de respaldo contiene los archivos, carpetas y base de datos de la aplicación Laravel.
Este es el proceso manual de hacer una copia de seguridad de Laravel. El usuario también puede programar la tarea de copia de seguridad. Para esto, agregue el siguiente código al schedule
método de app/Console/Kernel.php
archivo.
protected function schedule(Schedule $schedule)
{
$schedule->command('backup:run')->daily()->at('06:00');
}
Aquí, programo la copia de seguridad diaria a las 06:00. El usuario puede cambiar este tiempo según sus necesidades.
Espero que sepas cómo almacenar una copia de seguridad de la aplicación Laravel en Dropbox. Me gustaría escuchar sus pensamientos y sugerencias en la sección de comentarios a continuación.
Artículos relacionados
- Cómo cargar un archivo a S3 usando el sistema de archivos Laravel
- Cargar archivos en Amazon S3 mediante AWS PHP SDK
- Cómo subir imágenes a otro servidor a través de FTP en Laravel