Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Bottleで特殊ヘッダーつきPOSTコマンドの受け口をつくる

curlコマンドのヘッダーの要素を追加 - Bye Bye Moore
で扱った、ヘッダに固有命令である旨をつけてPOST命令で結果を返す方法を自分でもやってみる
Bottleで画像を受け取る - Bye Bye Moore
を拡張する形で作っていきます

bottleでヘッダを呼び出すには"request.headers.raw(KEY)"で呼び出します。

実際のところ

tmpディレクトリにあるfoobar.jpgというファイルを/showに特殊ヘッダshowimageつきのPOSTで呼び出すには、以下の様に

from bottle import route, request, run, post, static_file

@post('/show')
def send_image():
  if ( request.headers.raw("showimage") == "True" ):
    filename="foobar.jpg"
    return static_file(filename, root='/tmp', mimetype='image/jpeg')
  else:
    return

if __name__ == '__main__':
  run(host='0.0.0.0', port=8080)

上記に対しコマンドを送って画像を1234.jpgとして受け取るには

$ curl -o 1234.jpg -X POST -H "showimage: True" http://127.0.0.1:8080/show