2017年2月23日木曜日

Laravel5.4でDropboxにバックアップ

Laravel5.4で、Dropboxにバックアップです。Tim Lelandさんのブログに書かれている通りに試してみました。見事にDropbox上に、バックアップが保存されています。感動であります!

まずは、Dropbox APIのAppを作成。OAuth用のアクセストークンを取得する。

.env(「Access Token」は「App key」とは違うので注意)
DROPBOX_ACCESS_TOKEN=abcdefghijklmn1234567890
DROPBOX_APP_SECRET=abcdefghijklmn

Dropbox用のファイルシステムアダプター「league/flysystem-dropbox」を追加。

サービスプロバイダを作成
$ php artisan make:provider DropboxFilesystemServiceProvider

/app/Providers/DropboxFilesystemServiceProvider.php
namespace App\Providers;

use Storage;
use League\Flysystem\Filesystem;
use Dropbox\Client as DropboxClient;
use League\Flysystem\Dropbox\DropboxAdapter;
use Illuminate\Support\ServiceProvider;

class DropboxFilesystemServiceProvider extends ServiceProvider
{
  public function boot()
  {
    Storage::extend('dropbox', function ($app, $config) {
      $client = new DropboxClient($config['accessToken'], $config['appSecret']);

      return new Filesystem(new DropboxAdapter($client));
    });
  }
}

/config/app.php(サービスプロバイダを登録)
  'providers' => [
    App\Providers\DropboxFilesystemServiceProvider::class,
  ],

/config/filesystems.php(ファイルシステムの設定に「dropbox」を追加)
  'disks' => [
    'dropbox' => [
      'driver' => 'dropbox',
      'accessToken' => env('DROPBOX_ACCESS_TOKEN'),
      'appSecret' => env('DROPBOX_APP_SECRET'),
    ]
  ],

/config/laravel-backup.php(laravel-backupの保存先を「dropbox」に変更)
  'destination' => [
    'disks' => [
      'dropbox',
    ],
  ],

あとは、こちらの要領でバックアップ



参考サイト
Backup your Laravel 5 App to Dropbox(Tim Lelandさん)
thephpleague/flysystem-dropbox: Flysystem Adapter for Dropbox(GitHub)
Laravel5.4でバックアップ「spatie/laravel-backup」

0 件のコメント:

コメントを投稿