Laraveli rakenduse varundamine ja selle salvestamine Amazon S3-sse
Varem olen avaldanud artikli, kus Laraveli varukoopia salvestatakse lokaalselt serverisse. Kuigi selles artiklis käsitlesime varukoopiate salvestamist hostiserverisse, pole see salvestamise viis soovitatav. Turvalisem variant varukoopiate salvestamiseks on pilves. Võib juhtuda, et teie server kukub kokku ja kaotate rakenduse koos kohapeal salvestatud varukoopiatega. Nendes halvimates stsenaariumides saate pilves varundatud varukoopia igal ajal hõlpsalt ennistada.
Arvestades varundamise tähtsust, uurime selles artiklis, kuidas Laraveli rakendust varundada ja selle Amazon s3-sse salvestada. Eesmärgi saavutamiseks kasutame nii Laraveli failisüsteemi kui ka Spatie välja töötatud paketti.
Hankige oma AWS-i turvamandaadid
Alustamiseks peaks teil kõigepealt olema konto Amazon S3-s. Pärast konto loomist veenduge, et olete A3 teenuse aktiveerinud, järgides AWS-i kinnitamise protsessi.
Pärast S3-teenuse aktiveerimist hankige oma turvamandaadid, mida me mõne hetke pärast vajame. Selle saate klõpsates lingil „Minu turvakrediidid".
Konfigureerige S3 draiver Laravelis
Minge oma koodiredaktorisse ja avage fail config/filesystems.php
. Selles failis näete, et S3 üksikasjad on määratud env()
meetodi abil. See tähendab, et peate oma S3 mandaadi .env
failis määrama .
config / filesystems.php
<?php
return [
.....
'disks' => [
.....
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
],
...
...
];
Avage oma .env
fail ja lisage sellele AWS S3 mandaat. AWS_URL-väärtust pole vaja määrata, kuna see on valikuline.
.env
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
AWS_BUCKET=
Enne S3 kasutamist peate Composeri kaudu installima sobiva paketi:
composer require league/flysystem-aws-s3-v3 ~1.0
Spatie raamatukogu installimine ja konfigureerimine
Enne Spatie teegi installimist veenduge, et teie süsteem vastab paketi nõuetele. Lisateavet leiate nende lehelt Nõuded.
Kui kasutate Laraveli vanemat versiooni, vaadake selle paketi ühte eelmist versiooni aadressidel v6, v5, v4.
Installime paketi, käivitades alloleva käsu:
composer require spatie/laravel-backup
Kui teek on installitud, käivitage järgmine käsk allpool, mis avaldab konfiguratsioonifaili config/backup.php
.
php artisan vendor:publish --provider="SpatieBackupBackupServiceProvider"
Avage config/backup.php
fail ja määrake ‘ketaste’ nimeks ‘s3’. Seda tehes käskime sellel paketil hoida Lavareli varukoopia Amazon S3 ämbris.
<?php
...
...
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
's3',
],
Selles failis on saadaval ka teisi konfiguratsioone. Kasutaja saab katalooge varundamiseks lisada ja välja jätta. Kaasamise jaoks on väärtus base_path()
ja välistamiseks valiku väärtus on base_path('vendor'), base_path(‘node_modules’)
. See tähendab, et ärge lisage lõplikku varukoopia vendor
ega nod_modules
kaustu.
Salvestage Laraveli rakenduse varukoopia Amazon S3-le
Oleme teinud kõik põhilised konfiguratsioonid, mis on vajalikud Lavareli varunduse salvestamiseks Amazon S3-s. Nüüd saame oma esimese varukoopia salvestada. Avage terminal oma projekti juurkataloogis ja käivitage käsk:
php artisan backup:run
Ülaltoodud käsk varundab teie Laraveli rakenduse AWS-i. Varukoopia zip leiate oma S3 ämbrist. Varukoop sisaldab ZIP-faile, kaustu ja andmebaasihoidlat.
See teek võimaldab ka varundamisprotsessi ajastamist. Saate varundusülesannet automatiseerida. Selleks lisage app/Console/Kernel.php
faili allolev kood .
<?php
...
...
protected function schedule(Schedule $schedule)
{
$schedule->command('backup:run')->daily()->at('06:00');
}
Siin määrasin igapäevase varundamise kell 06:00. Kasutaja saab seda aega vastavalt oma nõudele muuta.
Loodan, et saate aru, kuidas Laraveli rakendusest varukoopia teha ja Amazon S3-sse salvestada. Tahaksin kuulda teie mõtteid ja ettepanekuid allpool olevas kommentaaride jaotises.