【開発ノート】画像素材ストッカー開発
開発目的
web制作で使用する画像素材をチームで保管・共有するため
開発環境構築
Laravel sailで構築
参考記事
メモ
-
sail up -d
の後、localhostにアクセスするにはマイグレーションする必要あり
phpmyadminの導入
参考記事
メモ
- DBユーザーに権限付与必要
メモ
Laravel Sailで作成してプロジェクトをgithub経由でcloneしたらsailコマンドが使えなかった
原因
必要なパッケージをインストールしていないから
そのためのcomposerもインストールしていない
解決方法
下記のコマンドでcomposerをインストールして各種パッケージをインストールする
docker run --rm \
-u "$(id -u):$(id -g)" \
-v $(pwd):/var/www/html \
-w /var/www/html \
composer install
開発
各種テーブルとモデル作成、リレーションシップ設定
Googleドライブへの接続
-
google cloude consoleでGoogle Drive APIを使えるように設定
参考:
https://qiita.com/doran/items/15b2c59adb410ddeeb8a -
パッケージのインストール
# 必要なパッケージのインストール
composer require google/apiclient
composer require google/cloud-storage
- 認証ファイルの配置
mkdir -p config/google
mv service-account.json config/google/service-account.json
mv oauth-credentials.json config/google/oauth-credentials.json
- gitignoreの設定
/config/google/*.json
!/config/google/.gitkeep
-
サービスクラスの実装
-
カスタム例外クラスの作成
-
サービスプロバイダーの登録
php artisan make:provider GoogleServiceProvider
- 設定ファイルの更新(config/services.php)
return [
// 他の設定...
'google' => [
'auth_type' => env('GOOGLE_DRIVE_AUTH_TYPE', 'service-account'),
'folder_id' => env('GOOGLE_DRIVE_FOLDER_ID'),
'credentials_path' => env('GOOGLE_DRIVE_CREDENTIALS_PATH', base_path('config/google/service-account.json')),
],
];
- 環境変数の設定
GOOGLE_DRIVE_FOLDER_ID=your-folder-id
GOOGLE_DRIVE_AUTH_TYPE=service-account
GOOGLE_DRIVE_FOLDER_ID
はgoogle driveで作成したフォルダにアクセルしURLを確認する
例:
https://drive.google.com/drive/folders/1aB2cD3eF4gH5iJ6kL7mN8...
この1aB2cD3eF4gH5iJ6kL7mN8...
部分がGOOGLE_DRIVE_FOLDER_ID
-
コントローラーで処理を実装
-
viewとrouteの設定
Google Cloud Consoleでの設定手順
a. プロジェクトの作成:
Google Cloud Console にアクセス
新しいプロジェクトを作成
b. APIの有効化:
左メニューから「APIとサービス」→「ライブラリ」
検索で "Google Drive API" を探す
「有効にする」をクリック
c. サービスアカウントの作成:
左メニューから「APIとサービス」→「認証情報」
「認証情報を作成」→「サービスアカウント」を選択
必要事項を入力:
サービスアカウント名(例:my-app-drive-access)
説明(任意)
「作成」をクリック
d. キーの作成:
作成したサービスアカウントをクリック
「キー」タブを選択
「鍵を追加」→「新しい鍵を作成」
JSONを選択
キーがダウンロードされます
e. 権限の設定:
Google Driveで使用するフォルダを開く
フォルダを右クリック→「共有」
サービスアカウントのメールアドレスを追加
メールアドレスは [サービスアカウント名]@[プロジェクトID].iam.gserviceaccount.com
※Google Cloud Console で確認できる
Google Cloud Console にアクセス
左メニューから「IAM と管理」→「サービスアカウント」を選択
サービスアカウントの一覧が表示され、そこにメールアドレスが表示されている
編集者権限を付与