在 WordPress 上面如果要上傳檔案到 Amazon S3 可以使用 WP Offload Media Lite 這個工具,在設定上可以找到官方文件的 Amazon S3 Quick Start Guide,可以看到它的設定很簡單只要幾個步驟,不過我通常會用更高安全性的設定方法設定,所以記錄一下。
AWS IAM Policies
我通常會在 Policies 裏面限制它只能存取某個 S3 Bucket 並不會全部給它,假設我有一個 Bucket 名稱叫做 sample 我就會設定它的 Policies JSON 如下
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::sample",
"arn:aws:s3:::sample/*"
]
}
]
}
Amazon S3
Block public access
首先是 Block public access 記得要取消打勾

設定後會出現警示是正常的不用理它

Object Ownership
再來是 Object Ownership 要開啟 ACL

WordPress 的 wp-config.php 設定
最後把新增的 IAM Users 新增到 wp-config.php
define( 'AS3CF_SETTINGS', serialize( array(
'provider' => 'aws',
'access-key-id' => '********************',
'secret-access-key' => '**************************************',
) ) );
WordPress 設定 Bucket 位置
因為在 IAM 不是使用 AmazonS3FullAccess 的權限所以 Media Library 沒有辦法自動搜尋,這邊需要自己手動輸入。

設定成功後就會看到 WordPress 可以成功使用 Amazon S3 當媒體庫了