skimemo


skimemo - 日記/2021-06-06

_ さくらのオブジェクトストレージを使っていて気づいたこと

所々ではまるのでメモです。

_ HEADリクエストとCORS

Publicのオブジェクトにアクセスする際は、CORSを設定しないと Reason: CORS header 'Access-Control-Allow-Origin' missing エラーになってしまうのですが、CORSを全許可にアクセスしても、何故か最初のHEADリクエストだけはCORSエラーになります。私は404かそうじゃないかだけ知りたかったので、CORSエラーの場合はファイルが存在すると判断するようにして回避しました。バグ!?

_ さくら内からProxyを張る

さくらのオブジェクトストレージは、さくら内から使う分には安くて制限も無いのですが、さくら外(つまりpublicにしてブラウザ)からアクセスすると月間10万アクセスで無料枠を使い切るなど、意外と高コストになりかねません。そこで、元々借りているさくら内のサーバーにProxyを設定して、そこを経由して外部に公開するようにしたところ、パスは合っているのにAccessDeniedになるケースが出てきました。サーバーから telnet [server] 80 でアクセスして確認すると問題無いのに、です。

オブジェクトストレージ側には何のログも出ないので、サーバー側から出るパケットをキャプチャして確認してたところ、ヘッダに Authorization が含まれると、何らかの認証をしようとして(?)エラーとなることが分かりました。

というわけで、Proxyの設定(Apache)を以下のようにしたところ、正常にアクセスできるようになりました。

ProxyPass /s3 http://s3.isk01.sakurastorage.jp/[bucket名]
<Proxy *>
    RequestHeader unset Authorization
</Proxy>


今後も随時追記していきます。

Category: [Linux] - 19:08:48

オブジェクトのストレージ(違う)。





 
Last-modified: 2021-06-06 (日) 19:08:48 (343d)