{"id":29494,"date":"2021-06-16T12:49:00","date_gmt":"2021-06-16T09:49:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=29494"},"modified":"2021-10-18T03:32:01","modified_gmt":"2021-10-18T00:32:01","slug":"kopia-zapasowa-aplikacji-laravel-na-dropbox","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/kopia-zapasowa-aplikacji-laravel-na-dropbox\/","title":{"rendered":"Kopia zapasowa aplikacji Laravel na Dropbox"},"content":{"rendered":"<p>Zawsze zalecane jest przechowywanie kopii zapasowej aplikacji w chmurze. Nigdy nie wiadomo, kiedy trzeba b\u0119dzie przywr\u00f3ci\u0107 witryn\u0119 z kopii zapasowej. Amazon S3, Google Cloud, Dropbox itp. to tylko niekt\u00f3re z popularnych us\u0142ug do przechowywania kopii zapasowych aplikacji. W tym samouczku zajmiemy si\u0119 przechowywaniem kopii zapasowych aplikacji Laravel w Dropbox. Je\u015bli chcesz go przechowywa\u0107 w Amazon S3, zapoznaj si\u0119 z naszym artyku\u0142em dotycz\u0105cym przechowywania <a href=\"https:\/\/themewp.inform.click\/pl\/jak-wykonac-kopie-zapasowa-aplikacji-laravel-i-przechowywac-ja-na-amazon-s3\/\" title=\"kopii zapasowej Laravel w Amazon S3\" >kopii zapasowej Laravel w Amazon S3<\/a>.<\/p>\n<p>Dropbox oferuje us\u0142ug\u0119 API, kt\u00f3ra mo\u017ce wys\u0142a\u0107 kopi\u0119 zapasow\u0105 z naszej aplikacji do Dropbox. Je\u015bli chodzi o Laravela, musimy skonfigurowa\u0107 Laravel Filesystem i ustawi\u0107 Dropbox jako jeden z magazyn\u00f3w plik\u00f3w. Nast\u0119pnie b\u0119dzie wchodzi\u0107 w interakcje z Dropbox API za kulisami.<\/p>\n<p>Podczas interakcji z Dropbox API musimy posiada\u0107 <strong>token dost\u0119pu<\/strong> do konta Dropbox w celu autoryzacji. Najpierw zdob\u0105d\u017amy token dost\u0119pu Dropbox.<\/p>\n<h3>Uzyskaj token dost\u0119pu do Dropbox<\/h3>\n<p>Aby uzyska\u0107 token dost\u0119pu, utw\u00f3rz <a href=\"https:\/\/www.dropbox.com\/developers\/apps\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aplikacj\u0119 Dropbox<\/a>. Po zalogowaniu kliknij przycisk \u201eUtw\u00f3rz aplikacj\u0119&quot;. W kolejnym kroku poprosisz o wyb\u00f3r API. Pod typem dost\u0119pu wybierz \u201eFolder aplikacji&#8221; i nadaj nazw\u0119 swojej aplikacji. Zobacz zrzut ekranu poni\u017cej.<\/p>\n<p>Nast\u0119pnie z zak\u0142adki \u201eUprawnienia&#8221; dodaj zakresy plik\u00f3w i folder\u00f3w, aby nasza aplikacja mog\u0142a zapisywa\u0107 do Dropbox.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20191-6081cadca94f5.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20191-6081cadca94f5.png\" alt=\"Kopia zapasowa aplikacji Laravel na Dropbox\" ><\/a><\/p>\n<p>Na koniec z zak\u0142adki \u201eUstawienia&#8221; wybierz \u201eBez wa\u017cno\u015bci&#8221; w polu Wyga\u015bni\u0119cie tokena dost\u0119pu i kliknij przycisk \u201eGeneruj&#8221;, kt\u00f3ry da Ci token dost\u0119pu.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20191-6081cadd3be4f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20191-6081cadd3be4f.png\" alt=\"Kopia zapasowa aplikacji Laravel na Dropbox\" ><\/a><\/p>\n<h3>Skonfiguruj system plik\u00f3w Laravel dla Dropbox<\/h3>\n<p>Laravel dostarcza system plik\u00f3w, kt\u00f3ry dostarcza sterowniki do lokalnej pami\u0119ci masowej, SFTP i Amazon S3. Aby doda\u0107 Dropbox jako sterownik, musimy go troch\u0119 skonfigurowa\u0107. Wymaga dodania adaptera Dropbox do aplikacji Laravel. Mo\u017cesz to zrobi\u0107, wykonuj\u0105c poni\u017csze czynno\u015bci.<\/p>\n<p>Zainstaluj bibliotek\u0119 <a href=\"https:\/\/github.com\/spatie\/flysystem-dropbox\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">spatie\/flysystem-dropbox<\/a> za pomoc\u0105 polecenia:<\/p>\n<pre><code>composer require spatie\/flysystem-dropbox<\/code><\/pre>\n<p>Po zainstalowaniu biblioteki utw\u00f3rz dostawc\u0119 us\u0142ug <code>DropboxServiceProvider<\/code>za pomoc\u0105 poni\u017cszego polecenia.<\/p>\n<pre><code>php artisan make:provider DropboxServiceProvider<\/code><\/pre>\n<p>Nast\u0119pnie zdefiniuj niestandardowy sterownik <code>dropbox<\/code>w <code>boot<\/code>metodzie <code>DropboxServiceProvider<\/code>.<\/p>\n<p><strong>appProvidersDropboxServiceProvider.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppProviders;\n\u00a0\nuse IlluminateSupportFacadesStorage;\nuse IlluminateSupportServiceProvider;\nuse LeagueFlysystemFilesystem;\nuse SpatieDropboxClient as DropboxClient;\nuse SpatieFlysystemDropboxDropboxAdapter;\n\u00a0\nclass DropboxServiceProvider extends ServiceProvider\n{\n\u00a0\u00a0\u00a0\u00a0...\n\u00a0\u00a0\u00a0\u00a0...\n\u00a0\u00a0\u00a0\u00a0public function boot()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Storage::extend('dropbox', function ($app, $config) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$client = new DropboxClient(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$config['authorization_token']\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return new Filesystem(new DropboxAdapter($client));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Zarejestruj dostawc\u0119 us\u0142ug <code>DropboxServiceProvider<\/code>w <code>providers<\/code>tablicy <code>config\/app.php<\/code>plik\u00f3w.<\/p>\n<pre><code>'providers' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\/\/ ...\n\u00a0\u00a0\u00a0\u00a0AppProvidersDropboxServiceProvider::class,\n];<\/code><\/pre>\n<p>Nast\u0119pnie dodaj sterownik \u201edropbox&#8221; do dysk\u00f3w systemu plik\u00f3w. Otw\u00f3rz <code>config\/filesystems.php<\/code>plik i dodaj element \u201edropbox&#8221; do <code>disks<\/code>tablicy.<\/p>\n<pre><code>'disks' =&gt; [\n\u00a0\u00a0\u00a0\u00a0...\n\u00a0\u00a0\u00a0\u00a0...\n\u00a0\u00a0\u00a0\u00a0'dropbox' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'driver' =&gt; 'dropbox',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'authorization_token' =&gt; env('DROPBOX_AUTH_TOKEN'),\n\u00a0\u00a0\u00a0\u00a0],\n],<\/code><\/pre>\n<p>Tutaj otrzymuj\u0119 warto\u015b\u0107 sta\u0142ej \u201eDROPBOX_AUTH_TOKEN&#8221; przy u\u017cyciu <code>env()<\/code>metody. Oznacza to, \u017ce powinni\u015bmy doda\u0107 t\u0119 sta\u0142\u0105 w <code>.env<\/code>pliku.<\/p>\n<p><strong>.env<\/strong><\/p>\n<pre><code>...\n...\nDROPBOX_AUTH_TOKEN=PASTE_ACCESS_TOKEN_HERE<\/code><\/pre>\n<h3>Zainstaluj i skonfiguruj bibliotek\u0119 kopii zapasowych Laravel<\/h3>\n<p>Na razie sko\u0144czyli\u015bmy z dodawaniem adaptera Dropbox do aplikacji Laravel. Teraz zainstaluj bibliotek\u0119 <a href=\"https:\/\/github.com\/spatie\/laravel-backup\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kopii zapasowych spatie\/laravel,<\/a> kt\u00f3ra pozwala nam wysy\u0142a\u0107 kopie zapasowe do r\u00f3\u017cnych us\u0142ug w chmurze, w tym Dropbox. Uruchom poni\u017csze polecenie w celu instalacji.<\/p>\n<pre><code>composer require spatie\/laravel-backup<\/code><\/pre>\n<p>Po zainstalowaniu biblioteki opublikuj plik konfiguracyjny <code>config\/backup.php<\/code>za pomoc\u0105 polecenia:<\/p>\n<pre><code>php artisan vendor:publish --provider=\"SpatieBackupBackupServiceProvider\"<\/code><\/pre>\n<p>Nast\u0119pnie otw\u00f3rz <code>config\/backup.php<\/code>i dodaj \u201edropbox&#8221; do tablicy \u201edisk&#8221;.<\/p>\n<pre><code>&lt;?php\n\u00a0\u00a0\u00a0\u00a0\nreturn [\n\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0.......\n\u00a0\u00a0\u00a0\u00a0.......\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0'destination' =&gt; [\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0......\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0......\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/*\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0* The disk names on which the backups will be stored.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'disks' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'dropbox',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0......\n\u00a0\u00a0\u00a0\u00a0......<\/code><\/pre>\n<p>Opcjonalnie mo\u017cesz r\u00f3wnie\u017c ustawi\u0107 sw\u00f3j adres e-mail, na kt\u00f3ry b\u0119dzie wysy\u0142ane powiadomienie o stanie kopii zapasowej. T\u0119 opcj\u0119 znajdziesz w <code>mail<\/code>tablicy <code>config\/backup.php<\/code>file.<\/p>\n<h3>Kopia zapasowa aplikacji Laravel na Dropbox<\/h3>\n<p>Zako\u0144czyli\u015bmy wszystkie podstawowe ustawienia wymagane do utworzenia kopii zapasowej aplikacji Laravel w Dropbox. Podejd\u017a do terminala i strzel poni\u017csze polecenie:<\/p>\n<pre><code>php artisan backup:run<\/code><\/pre>\n<p>Powy\u017csze polecenie utworzy folder \u201eLaravel&#8221; na Twoim koncie Dropbox i przechowa w nim kopi\u0119 zapasow\u0105 zip. Ten zip kopii zapasowej zawiera pliki, foldery i baz\u0119 danych aplikacji Laravel.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20191-6081cadd3be4f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20191-6081cadd3be4f.png\" alt=\"Kopia zapasowa aplikacji Laravel na Dropbox\" ><\/a><\/p>\n<p>Jest to r\u0119czny proces tworzenia kopii zapasowej Laravel. U\u017cytkownik mo\u017ce r\u00f3wnie\u017c zaplanowa\u0107 zadanie tworzenia kopii zapasowej. W tym celu dodaj poni\u017cszy kod do <code>schedule<\/code>metody <code>app\/Console\/Kernel.php<\/code>pliku.<\/p>\n<pre><code>protected function schedule(Schedule $schedule)\n{\n\u00a0\u00a0\u00a0\u00a0$schedule-&gt;command('backup:run')-&gt;daily()-&gt;at('06:00');\n}<\/code><\/pre>\n<p>Tutaj planuj\u0119 codzienn\u0105 kopi\u0119 zapasow\u0105 o 06:00. U\u017cytkownik mo\u017ce zmieni\u0107 ten czas zgodnie z ich wymaganiami.<\/p>\n<p>Mam nadziej\u0119, \u017ce dowiedzia\u0142e\u015b si\u0119 o przechowywaniu kopii zapasowej aplikacji Laravel w Dropbox. Chcia\u0142bym us\u0142ysze\u0107 wasze przemy\u015blenia i sugestie w sekcji komentarzy poni\u017cej.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-przeslac-plik-do-s3-za-pomoca-systemu-plikow-laravel\/\" title=\"Jak przes\u0142a\u0107 plik do S3 za pomoc\u0105 systemu plik\u00f3w Laravel?\">Jak przes\u0142a\u0107 plik do S3 za pomoc\u0105 systemu plik\u00f3w Laravel?<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/przeslij-pliki-do-amazon-s3-za-pomoca-aws-php-sdk\/\" title=\"Prze\u015blij pliki do Amazon S3 za pomoc\u0105 AWS PHP SDK\">Prze\u015blij pliki do Amazon S3 za pomoc\u0105 AWS PHP SDK<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-przeslac-obrazy-na-inny-serwer-przez-ftp-w-laravel\/\" title=\"Jak przes\u0142a\u0107 obrazy na inny serwer przez FTP w Laravel?\">Jak przes\u0142a\u0107 obrazy na inny serwer przez FTP w Laravel?<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Czy chcesz wykona\u0107 kopi\u0119 zapasow\u0105 aplikacji Laravel na Dropbox? W tym artykule dowiemy si\u0119, jak mo\u017cna przechowywa\u0107 kopi\u0119 zapasow\u0105 aplikacji Laravel<\/p>\n","protected":false},"author":1,"featured_media":20192,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[501],"tags":[847],"class_list":["post-29494","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/29494","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=29494"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/29494\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/20192"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=29494"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=29494"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=29494"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}