Kuinka ottaa Laravel-sovelluksen varmuuskopiointi ja tallentaa se Amazon S3: een
Aiemmin olen julkaissut artikkelin, joka tallentaa Laravel-varmuuskopion paikallisesti palvelimelle. Vaikka tässä artikkelissa keskustelimme varmuuskopion tallentamisesta isäntäpalvelimelle, sitä ei suositella tallennustapaksi. Turvallisempi vaihtoehto varmuuskopion tallentamiseksi on pilvessä. Se voi tapahtua, että palvelimesi kaatuu ja menetät sovelluksen yhdessä paikallisesti tallennettujen varmuuskopioiden kanssa. Näissä pahimmissa tilanteissa, jos sinulla on varmuuskopio tallennettu pilveen, voit palauttaa sen helposti milloin tahansa.
Kun otetaan huomioon varmuuskopioinnin merkitys, tutkimme tässä artikkelissa, kuinka Laravel-sovellus varmuuskopioidaan ja miten se tallennetaan Amazon s3: een. Tavoitteen saavuttamiseksi käytämme sekä Laravel Filesystemia että Spatien kehittämää pakettia.
Hanki AWS-suojaustiedot
Aloittamiseksi sinulla on ensin oltava tili Amazon S3: lla. Kun olet luonut tilin, varmista, että olet aktivoinut S3-palvelun seuraamalla AWS-vahvistusprosessia.
Kun olet aktivoinut S3-palvelun, hanki tietoturvatiedot, joita tarvitsemme hetkessä. Saat sen napsauttamalla linkkiä "My Security Credentials".
Määritä S3-ohjain Laravelissa
Siirry koodieditoriin ja avaa tiedosto config/filesystems.php
. Tässä tiedostossa näet, että S3: n tiedot asetetaan env()
menetelmällä. Se tarkoittaa, että sinun on asetettava S3-tunnuksesi .env
tiedostoon.
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'),
],
...
...
];
Avaa .env
tiedosto ja lisää siihen AWS S3 -tunnistetiedot. AWS_URL-arvoa ei tarvitse asettaa, koska se on valinnainen.
.env
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
AWS_BUCKET=
Ennen S3: n käyttöä sinun on asennettava sopiva paketti Composerin kautta:
composer require league/flysystem-aws-s3-v3 ~1.0
Asenna ja määritä Spatien kirjasto
Varmista ennen Spatien kirjaston asentamista, että järjestelmäsi täyttää pakettivaatimukset. Lue lisää heidän Vaatimukset- sivulta.
Jos käytät Laravelin vanhempaa versiota, tutustu johonkin tämän paketin aiemmista versioista osoitteissa v6, v5, v4.
Asennetaan paketti suorittamalla alla oleva komento:
composer require spatie/laravel-backup
Kun kirjasto on asennettu, suorita seuraava alla oleva komento, joka julkaisee määritystiedoston config/backup.php
.
php artisan vendor:publish --provider="SpatieBackupBackupServiceProvider"
Avaa config/backup.php
tiedosto ja aseta levyn nimeksi s3. Näin tekemällä käskemme tätä pakettia tallentamaan Laravel-varmuuskopio Amazon S3 -kauhaan.
<?php
...
...
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
's3',
],
Tässä tiedostossa on myös muita kokoonpanoja. Käyttäjä voi sisällyttää ja sulkea hakemistot varmuuskopiointia varten. Sisällytä-arvon arvo on base_path()
ja poissulkemiselle -vaihtoehdon arvo on base_path('vendor'), base_path(‘node_modules’)
. Se tarkoittaa, että älä sisällytä vendor
ja nod_modules
kansioita lopulliseen varmuuskopioon.
Tallenna Laravel-sovelluksen varmuuskopio Amazon S3: een
Olemme tehneet kaikki tarvittavat perusmääritykset Laravel-varmuuskopion tallentamiseksi Amazon S3: een. Nyt voimme tallentaa ensimmäisen varmuuskopion. Avaa pääte projektin juurihakemistossa ja suorita komento:
php artisan backup:run
Yllä oleva komento varmuuskopioi Laravel-sovelluksen AWS: ään. Varmuuskopion vetoketju löytyy S3-ämpäriisi. Varmuuskopiointipakkaus sisältää sovellustiedostot, kansiot ja tietokantavarastot.
Tämä kirjasto sallii myös varmuuskopioinnin ajoituksen. Voit automatisoida varmuuskopiotehtävän. Lisää tätä varten seuraava koodi app/Console/Kernel.php
tiedostoon.
<?php
...
...
protected function schedule(Schedule $schedule)
{
$schedule->command('backup:run')->daily()->at('06:00');
}
Täällä asetin päivittäisen varmuuskopion klo 06:00. Käyttäjä voi muuttaa tätä aikaa vaatimustensa mukaisesti.
Toivon, että ymmärrät, kuinka voit ottaa varmuuskopion Laravel-sovelluksesta ja tallentaa sen Amazon S3: een. Haluaisin kuulla ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.