引き続きLeoFSを触ってみる。今回はREST APIでLeoFS上のファイルを操作してみる。
REST API — LeoFS 1.0 documentation
GETしてみる
とりあえずGETくらいはいけるやろ、と甘く見ていたが、ドキュメントの一行目でいきなり詰まる。
${USE_S3_AUTH}
というのがわからない。Gateway configurationのリンク先にもないっぽい。ドキュメント内の検索をしてみてもこのREST APIのページしか出てこない。その後の${KEY}というのもわからなかった。。
無視して、GETを投げてみる。
$ curl -X GET http://localhost:8080/tarr-bucket/test.txt
<?xml version="1.0" encoding="UTF-8"?><Error><Code>AccessDenied</Code><Message>Access Denied</Message><Resource>tarr-bucket/test.txt</Resource><RequestId></RequestId></Error>
あからさまに上記のAUTHの設定がない的なエラーが帰ってきた。
開発サイドに質問
どうしようもなかったので開発サイドに質問してみたところ、このREST APIのドキュメントが古かったらしく
LeoFS Configuration — LeoFS 1.0 documentation
上記ドキュメントの{HTTP_HANDLER}というところに置き換わっているらしい。{LEOFS_HOME}/package/gateway/etc/leo_gateway.conf
の中のhttp.handler
をrestに設定すると良いとのこと。
改めてGETしてみる
vi leo_gateway/etc/leo_gateway.conf
## Gateway’s HTTP API to use: [s3 | rest | embed]
http.handler = rest
上記に編集した後にGETを投げてみる。
$ curl -X GET http://localhost:8080/tarr-bucket/test.txt
<?xml version="1.0" encoding="UTF-8"?><Error><Code>AccessDenied</Code><Message>Access Denied</Message><Resource>tarr-bucket/test.txt</Resource><RequestId></RequestId></Error>
エラーがでた。先ほど編集したconfigファイルが反映されていないのかと思い、gatewayをrestartする。
$ leo_gateway/bin/leo_gateway stop
ok
$ leo_gateway/bin/leo_gateway start
改めてGET
$ curl -X GET http://localhost:8080/tarr-bucket/test.txt
tarrrrrrrrrr
上手くいった。