[Laravel] 設定並上傳檔案到AWS S3

更新於 發佈於 閱讀時間約 4 分鐘
此文章同步刊登於我的部落格


簡介

Simple Storage Service (S3) 是 AWS 最常應用到的服務,只要是需要將檔案上傳到雲端的狀況都可以使用S3,本篇文章將介紹如何設定與使用AWS S3。

設定AWS S3(Simple Storage Service)

官方說明文件

https://laravel-news.com/using-s3-with-laravel

https://youtu.be/FLIp6BLtwjk


一、建立儲存體

  1. 開啟S3設定頁面https://s3.console.aws.amazon.com/s3
  2. 建立儲存槽
raw-image


  1. 設定儲存體
raw-image
raw-image
raw-image
raw-image


二、新增IAM用戶

  1. 開啟IAM儀表板
raw-image


  1. 新增使用者
raw-image
raw-image


  1. 設定使用者名稱並選取類型為「存取金鑰」
raw-image


  1. 一路點選下一步,不要修改任何東西直到建立完成,並記錄下此處顯示的金鑰
raw-image


  1. 添加內嵌政策
raw-image
raw-image


  1. 選擇json編輯器貼入以下內容(From Flysystem docs)
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "Stmt1420044805001",
    "Effect": "Allow",
    "Action": [
    "s3:ListBucket",
    "s3:GetObject",
    "s3:GetObjectAcl",
    "s3:PutObject",
    "s3:PutObjectAcl",
    "s3:ReplicateObject",
    "s3:DeleteObject"
    ],
    "Resource": [
    "arn:aws:s3:::your-bucket-name",
    "arn:aws:s3:::your-bucket-name/*"
    ]
    }
    ]
    }
  2. 修改Statement.Resource的內容,將名稱改為剛剛建立的儲存體名稱後點選「檢閱政策」
raw-image
  1. 填寫名稱後按下「建立政策」
raw-image


Larvel使用MediaLibrary串接AWS S3

一、設定Laravel(可參考官方文件)

  1. 新增migration並執行
    php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="migrations"
    php artisan migration
  2. 執行seeder
    php artisan db:seed --class=MediaTempSeeder
  3. 新增設定檔案
    php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="config"
  4. 設定.env
    AWS_ACCESS_KEY_ID=<public key>
    AWS_SECRET_ACCESS_KEY=<private key>
    AWS_DEFAULT_REGION=<儲存體伺服器>
    AWS_BUCKET=<儲存體名稱>
    AWS_USE_PATH_STYLE_ENDPOINT=true

    MEDIA_DISK=medialibrary
    MEDIA_LIBRARY_ROOT=media_development

二、上傳到本地

  1. 設定.env
    MEDIA_DISK=public
  2. 執行指令
    php artisan storage:link
avatar-img
7會員
21內容數
你可以在這裡看到後端工程師的技術文章 也可以看到一些投資相關的心得分享 歡迎交流~
留言
avatar-img
留言分享你的想法!
Hankz是名工程師 的其他內容
在使用laravel中的Queue job的時候 如果希望job中斷還可以重新啟動這個時候就會需要用到Supervisor了 本篇文章為您帶來如何使用Supervisor執行Laravel的queue:work的教學
在PHP的團隊開發中,PHP CS Fixer可以確保每個開發人員的Coding Style相同,是相當重要的工具。本篇文章將會詳細說明PHP CS Fixer在Linux環境下的安裝方式。
Composer是PHP的軟體套件管理系統,它提供用於管理PHP軟體和依賴庫關係的標準格式。通常以專案為單位進行管理,會在專案根目錄底下(預設是vendor)安裝套件,除此外可以安裝全局套件。
本文將介紹在Windows環境中安裝SQL Server及相關PHP擴展,以進行與SQL Server的串接。透過本文所述步驟,您將能在Windows環境中順利進行PHP與SQL Server串接設定。
本文將介紹在Windows環境中安裝Oracle Instant Client及相關PHP擴展,以進行與Oracle Database的串接。透過本文所述步驟,您將能在Windows環境中順利進行PHP與Oracle Database的串接設定。
這篇文章將會提供在伺服器上安裝憑證的步驟,包括下載憑證,設定php.ini以及重新啟動Web Server等。
在使用laravel中的Queue job的時候 如果希望job中斷還可以重新啟動這個時候就會需要用到Supervisor了 本篇文章為您帶來如何使用Supervisor執行Laravel的queue:work的教學
在PHP的團隊開發中,PHP CS Fixer可以確保每個開發人員的Coding Style相同,是相當重要的工具。本篇文章將會詳細說明PHP CS Fixer在Linux環境下的安裝方式。
Composer是PHP的軟體套件管理系統,它提供用於管理PHP軟體和依賴庫關係的標準格式。通常以專案為單位進行管理,會在專案根目錄底下(預設是vendor)安裝套件,除此外可以安裝全局套件。
本文將介紹在Windows環境中安裝SQL Server及相關PHP擴展,以進行與SQL Server的串接。透過本文所述步驟,您將能在Windows環境中順利進行PHP與SQL Server串接設定。
本文將介紹在Windows環境中安裝Oracle Instant Client及相關PHP擴展,以進行與Oracle Database的串接。透過本文所述步驟,您將能在Windows環境中順利進行PHP與Oracle Database的串接設定。
這篇文章將會提供在伺服器上安裝憑證的步驟,包括下載憑證,設定php.ini以及重新啟動Web Server等。
你可能也想看
Google News 追蹤
Thumbnail
該來的終究還是來了 度過焦躁不安的一整周,學徒老人家我的不安感等比級數的襲來,自3/19寫了第一篇關於<巴克萊銀行:倉促撤退>的報告,看到市場上的機構法人有如大洪水、地震來臨前夕開始竄逃撤退。 海湖莊園協議 接著,在3/31與4/2兩天接著寫了川普與他的財經團隊在海湖莊園豪
Thumbnail
空單爆天量、技術指標超賣、情緒恐慌到極致:美股嘎空行情有機會啟動嗎? 重點摘要: 技術面極度超賣,反彈條件醞釀中,但尚未明確止穩 SPY 與 QQQ 的重要指標,如MACD、KDJ、RSI等指標進入極端超賣區,但尚未出現底部鈍化或明確反轉訊號,技術面仍屬空方主導。 連續出現跳空缺口,空方動
Thumbnail
全新 vocus 挑戰活動「方格人氣王」來啦~四大挑戰任你選,留言 / 愛心 / 瀏覽數大 PK,還有新手專屬挑戰!無論你是 vocus 上活躍創作者或剛加入的新手,都有機會被更多人看見,獲得站上版位曝光&豐富獎勵!🏆
Thumbnail
在程式開發中,輸出變數內容是檢查進展和定位問題的關鍵。本文介紹了PHP的var_dump()函數以及Laravel框架中的dump()和dd()方法,幫助開發者選擇合適的輸出工具。根據需求選擇合適的方法,能使除錯過程更有效率。
Thumbnail
這篇文章深入探討 PHP 中的 Array 與 Laravel 框架中的 Collection 之間的主要差異,並分析各自的優缺點。文章介紹了兩者在本質、方法連鎖、高階方法及 Eloquent 互動的區別,並提供實際的使用案例,幫助初學者更好地理解這兩種資料結構的特性。
Thumbnail
本文介紹如何在 Laravel 中建立與操作資料庫模型,以及如何有效解決 N + 1 問題等。透過使用 Laravel 的 Eloquent ORM,開發者可以簡化資料庫操作,提高程式的可維護性與性能,是學習 Laravel 的開發者不可錯過的參考資料。
在現代 Web 應用中,實現用戶登入功能是非常基本且重要的步驟。本文將帶您了解如何在 Laravel 中構建一個完整的登入系統,涵蓋後端處理邏輯、前端表單設計以及相關的路由和中間件設定。這篇指南旨在幫助您建立一個簡潔且可擴展的登入流程。
Thumbnail
本文介紹 Laravel 中的路由設定,討論手動定義路由、群組、前綴和中介層的使用。透過這些技巧,能夠靈活組織 API 結構,提升可讀性和安全性。此外,還探討子資源路由及命名空間等進階技巧,幫助開發者精細控制路由行為。接下來會探討控制器的實作。
Thumbnail
疫情世代後,企業在思考的已經不是要不要上雲,而是哪些服務或內容可以上雲,透過混合雲的形式,搭配公司的策略達到靈活且彈性的最佳效益。 而既然要能達到最佳效益,選擇適合公司環境的雲端環境,對於現代企業來說非常重要,這篇文章將與大家分享AWS、GCP、Azure三大公有雲的特點與優勢。
AWS DataSync 是一種線上資料移動和探索服務,可簡化並加速向 AWS 的資料遷移,以及在內部部署儲存、邊緣節點、其他雲端和 AWS 儲存服務移入和移出資料[1]。 在某些架構上會,使用該服務會需要安裝 DataSync Agent 來傳輸檔案 您需要 DataSync Agen
Thumbnail
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
本篇文章將介紹如何使用Lambda建立Pre-Sign URL 的簡單範例,讓讀者瞭解如何自行發揮。
Thumbnail
該來的終究還是來了 度過焦躁不安的一整周,學徒老人家我的不安感等比級數的襲來,自3/19寫了第一篇關於<巴克萊銀行:倉促撤退>的報告,看到市場上的機構法人有如大洪水、地震來臨前夕開始竄逃撤退。 海湖莊園協議 接著,在3/31與4/2兩天接著寫了川普與他的財經團隊在海湖莊園豪
Thumbnail
空單爆天量、技術指標超賣、情緒恐慌到極致:美股嘎空行情有機會啟動嗎? 重點摘要: 技術面極度超賣,反彈條件醞釀中,但尚未明確止穩 SPY 與 QQQ 的重要指標,如MACD、KDJ、RSI等指標進入極端超賣區,但尚未出現底部鈍化或明確反轉訊號,技術面仍屬空方主導。 連續出現跳空缺口,空方動
Thumbnail
全新 vocus 挑戰活動「方格人氣王」來啦~四大挑戰任你選,留言 / 愛心 / 瀏覽數大 PK,還有新手專屬挑戰!無論你是 vocus 上活躍創作者或剛加入的新手,都有機會被更多人看見,獲得站上版位曝光&豐富獎勵!🏆
Thumbnail
在程式開發中,輸出變數內容是檢查進展和定位問題的關鍵。本文介紹了PHP的var_dump()函數以及Laravel框架中的dump()和dd()方法,幫助開發者選擇合適的輸出工具。根據需求選擇合適的方法,能使除錯過程更有效率。
Thumbnail
這篇文章深入探討 PHP 中的 Array 與 Laravel 框架中的 Collection 之間的主要差異,並分析各自的優缺點。文章介紹了兩者在本質、方法連鎖、高階方法及 Eloquent 互動的區別,並提供實際的使用案例,幫助初學者更好地理解這兩種資料結構的特性。
Thumbnail
本文介紹如何在 Laravel 中建立與操作資料庫模型,以及如何有效解決 N + 1 問題等。透過使用 Laravel 的 Eloquent ORM,開發者可以簡化資料庫操作,提高程式的可維護性與性能,是學習 Laravel 的開發者不可錯過的參考資料。
在現代 Web 應用中,實現用戶登入功能是非常基本且重要的步驟。本文將帶您了解如何在 Laravel 中構建一個完整的登入系統,涵蓋後端處理邏輯、前端表單設計以及相關的路由和中間件設定。這篇指南旨在幫助您建立一個簡潔且可擴展的登入流程。
Thumbnail
本文介紹 Laravel 中的路由設定,討論手動定義路由、群組、前綴和中介層的使用。透過這些技巧,能夠靈活組織 API 結構,提升可讀性和安全性。此外,還探討子資源路由及命名空間等進階技巧,幫助開發者精細控制路由行為。接下來會探討控制器的實作。
Thumbnail
疫情世代後,企業在思考的已經不是要不要上雲,而是哪些服務或內容可以上雲,透過混合雲的形式,搭配公司的策略達到靈活且彈性的最佳效益。 而既然要能達到最佳效益,選擇適合公司環境的雲端環境,對於現代企業來說非常重要,這篇文章將與大家分享AWS、GCP、Azure三大公有雲的特點與優勢。
AWS DataSync 是一種線上資料移動和探索服務,可簡化並加速向 AWS 的資料遷移,以及在內部部署儲存、邊緣節點、其他雲端和 AWS 儲存服務移入和移出資料[1]。 在某些架構上會,使用該服務會需要安裝 DataSync Agent 來傳輸檔案 您需要 DataSync Agen
Thumbnail
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
本篇文章將介紹如何使用Lambda建立Pre-Sign URL 的簡單範例,讓讀者瞭解如何自行發揮。