WordPress :メディアを S3に非公開でアップロードする

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にアクセス可能な 認証情報を含んだものになります。
興味ある方はお試しください。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ