携帯サイトの著作物保護 ~画像転送禁止を厳しく設定する~の記事で紹介されているように、SoftBankの携帯で画像転送の禁止を行うには、画像ファイルのレスポンスヘッダにx-jphone-copyrightを付与する必要があります。

しかし画像をS3に置く場合は、S3はx-jphone-copyrightのようヘッダを付与することができないので、Varnishなどのプロキシーを経由する必要があります。

例として、s3.suz-lab.comでアクセスすることができるS3に対して、softbank.suz-lab.comでアクセスすることができるVarnish経由で上記のS3にアクセスするには、下記のように設定ファイル(/etc/varnish/default.vcl)を記述すれば大丈夫です。

backend default {
   .host = "localhost";
   .port = "80";
}
sub vcl_recv {
   if(req.http.host == "softbank.suz-lab.com") {
       set req.backend   = s3_suz_lab_com;
       set req.http.host = "s3.suz-lab.com";
       return (pass);
   }
   return (lookup);
}
sub vcl_deliver {
   if(req.http.host == "s3.suz-lab.com") {
       set resp.http.x-jphone-copyright = "no-store";
   }
   return (deliver);
}
backend s3_suz_lab_com {
   .host = "s3.suz-lab.com";
   .port = "80";
}

ポイントとしては、vcl_deliverでレスポンスヘッダを付与していることと、その際のHostヘッダは、softbank.suz-lab.comではなく、s3.suz-lab.comとなっていることかと思います。

ただし、可用性についてはこのVarnishサーバがボトルネックになってしまうので、必要に応じてAuto Scalingなどを利用する必要があると思います。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら