WordPress 上傳圖片至 S3
WordPress 透過外掛 Offload Media Lite 將既有的圖片上傳至外連空間。簡單的外掛組合技,讓你不需要花錢買外掛功能。
安裝外掛
- Stop Generating Unnecessary Thumbnails 或著組合 Regenerate Thumbnails
- WP Offload Media Lite
或許你會說,阿這個外掛只能上傳新的,我舊的圖片怎麼辦?當然是要打組合技啊,不然幹嘛叫你裝前面的外掛
設定 Offload Media Lite
進入外掛頁面後,畫面應該會提示你,我自己是用 S3 ,當然你也可以依照你的需求。完成設定之後畫面大概會是這樣
S3 要注意幾點:
- 建立一個 IAM 使用者,權限設定要可以存取 Bucket
- IAM 金鑰 ID 跟 Key 最好寫在
wp-config.php
內 - 開好 Bucket 後,記得設定
可公開存取
代表有網址就可以下載,如果有私有媒體檔案請研究 Bucket 的設定
儲存貯體政策
設定可以參考
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::${你的Bucket 名稱}/*"
}
]
}
照著以上設定完後,隨意丟一張圖片進 bucket,是可以透過網址看到那張圖片的例如:https://s3-ap-northeast-1.amazonaws.com/bonze-blog/2021/03/2021-03-13-at-3.21-AM.png
要是你看到 XML 錯誤訊息代表你 S3 儲存貯體政策 可能設定有誤
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>xxxxxx</RequestId>
<HostId>xxxxx</HostId>
</Error>
重新產生圖片
回到 WordPress 上,強烈建議你 Remove Files From Server 不要打開,因為上傳完圖片,本地圖片網址會變成外連網址,接著你就要處理一堆轉址到儲存空間,等你有把握了再打開它。
我們來到前面安裝的 Stop Generating Unnecessary Thumbnails 外掛頁面,看你是否要禁用不需要的圖片大小
你最好要對你的佈景主題很熟悉,有用到哪些圖片尺寸自己要盤點一下,否則會死圖的!
前往重新產生圖片頁面,按下按鈕。
如果你的圖片很多,要注意一下伺服器
set_time_limit()
設定,很可能上傳到一半就被認定 timeout 終止了
隨意找媒體庫的一張圖片來看
打完收工。
可能遇到的問題
如果打開 Remove Files From Server 選項,會遇到 Facebook 分享圖因為還是讀取本地圖片造成分享連結圖片消失的問題,可以用 分享偵錯工具 重新抓取圖片路徑