WordPress :メディアを S3に非公開でアップロードする
どうもfujiharaです。
気がつけば10月ですね。一年経過するのが早く感じる年になりました。
本日はWordPressからS3にメディアをアップロードする際に非公開にする方法をご紹介します。
背景
S3にメディアをアップロードする場合WordPressでは超有名なプラグイン WP Offload Media
を使って実現する方も多いと思います。
ですが無条件でアップロードされたファイルが 全世界に一般公開されてしまいます。
当たり前なのですが、生成された以下のようなURLでアクセスできなくしたいという
要望があることもあります。
http://s3-ap-northeast-1.amazonaws.com/バケット名/xxxxxxx/yyyyymmdd/zzzzzzz.ext
対策
プラグインの中身を調べると、アップロード前にACLの値を 書き換える filter が用意されているので、そこで ACLを上書きしてあげることで 非公開にすることが可能です。
add_filter('as3cf_upload_acl', function () {
return 'private';
});
add_filter('as3cf_upload_acl_sizes', function() {
return 'private';
});
as3cf_upload_acl だけで良いとおもったんですが、メディア一覧に表示される自動生成のサムネイルも変更する
必要がある場合は as3cf_upoload_acl_sizes も使用する必要があります。実施するとメディアのURIにアクセス可能な
認証情報を含んだものになります。
興味ある方はお試しください。