LoginSignup
5
2

More than 5 years have passed since last update.

Laravel5.5でGoogleCloudStorageにファイルをアップロードする

Last updated at Posted at 2018-12-05

『Laravel5.5をGoogle App Engineで動かす』にてGoogle App Engine(スタンダード環境)にLaravel5.5アプリケーションをデプロイする方法を紹介しました。
今回は、前回要確認事項としていたLaravelのファイルストレージ機能を(もちろんGoogle CloudStorageで!)利用する方法を確立したので紹介したいと思います。"laravel5.5"のタグを付けていますが、多分 5.6, 5.7 でも動くはず。

GaeSupportLaravelの導入・設定

まず前提として、GaeSupportLaravel を利用します。
ただし、利用するバージョンは"dev-php72-laravel55"です。詳細、基本的な設定等は『Laravel5.5をGoogle App Engineで動かす』をご覧ください。

環境変数

.envファイルにFILESYSTEM_DRIVER=gaeを追加します。

設定ファイル

設定ファイル(config/filesystems.php)に以下の設定を追加します。

'disks' => [
    // 中略
    'gae' => [
        'driver' => 'gae',
        'root' => 'gs://(YOUR_BUCKET_NAME)/storage/app/',
    ],

ソースコードのコメントを読む限り、rootの最後に"/"が必要っぽい。
もちろん、rootの値も環境変数で与えるのがより望ましいです。

        'root' => env('GCS_STORAGE_URI'),

実装

ビュー

<input type="file" name="image"/>

もちろん、<form>へのenctype="multipart/form-data"追加も必要です。

コントローラ

public function store(Request $request)
{
    // 省略
    $path = $request->file('image')->store('public');
    \Log::info("Image uploaded:{$path}"); // ここも必須ではない
    // 省略
}

ビュー、コントローラのサンプルは必要最小限の部分のみ。
storeだけでなく、updateにも同様のコードを追加することになるかと思います。

おまけ(画像プレビュー)

画像ファイルのアップロードであれば、最低でもアップロード前のプレビューくらいは欲しいものです。
『最速・最高のファイルアップロードに近づくための1歩#画像のプレビュー』が参考になったので紹介しておきます。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2