Laravel 上傳檔案到Google Cloud Plateform Storage GCS

參考網址 :

https://github.com/Superbalist/laravel-google-cloud-storage

基礎概念

  1. 如果檔案是要在網頁上直接使用可以將權限直接設為公開
  2. 透過laravel-google-cloud-storage套件來達成
  3. 需要在GCP上申請並下載驗證金鑰

安裝laravel-google-cloud-storage

如果是Laravel 5.4以下的版本請在app/config.php 中加入以下,否則不需要

接著在config/filesystems.php中加入以下

2022/04/07 更新:

Laravel 9 以後版本請改用一下package

https://github.com/spatie/laravel-google-cloud-storage

config/filesystems.php中加入以下

其餘設定大同小異

取得GCP存取金鑰

1.API和服務 > 憑證

gcs
gcs

2.建立憑證 > 服務帳戶金鑰

gcs
gcs

3.選擇新增服務帳戶

gcs
gcs

4.填寫自訂義服務名稱,角色選擇為 : 儲存空間 > 儲存空間管理員

gcs
gcs

5. 點選”建立”後會下載一個JSON檔

gcs
gcs

6. 將此JSON檔放到專的中的Storage目錄下,並且將絕對路徑填入env中,舉例

7.最後只要將env中的 FILESYSTEM_DRIVE修改為 gcs 就可以使用Storage物件來存取gcs上的檔案了

最後,如何把GCS bucket設定為公開

1.Storager > 瀏覽器

gcs public
gcs public

2.在你要設定為公開的bucket右側點選功能鍵 > 編輯bucket權限

gcs public
gcs public

3. 權限頁籤選擇”新增成員”

gcs public
gcs public

4.新增成員欄位填入allUsers(會自動帶出),角色選擇 :儲存空間 > 儲存空間檢視者

gcs public
gcs public

按下儲存後就完成了