HUGO+Wercker+S3でciして運用するときは日本語のタグとカテゴリ名に気をつけろ

HugoをAWSのS3で運用する際に、日本語のタグとカテゴリがページとして認識されずにハマったので対策を紹介します。

起きた現象

日本語のタグを選択すると404.htmlが表示される

原因

werckerのstep-s3syncがS3に成果物をアップロードする際、日本語を転送できていないため。 ローカルでAWS CLIから成果物をアップロードすれば問題なく転送される。

ただし日本語特有の濁点などはデフォルトの設定では1文字とし認識されてしまうので、ここはS3側であらかじめ設定しておく必要がある。

% aws s3 ls s3://blog.gizwoo.com/categories/
                           PRE blog-building/
                           PRE building-blog/
                           PRE category/
                           PRE life/
                           PRE reading/
                           PRE showcase/
                           PRE subcategory/
                           PRE このフ゛ ロク゛ について/

対策

Hugoをローカルでビルドしたのち、tagとcategoryを手動でS3にアップロードする。ポイントはwerckerは使っちゃダメということ。 werckerを使えなくなるので根本解決にはなってないが、step-s3sync側に問題があるので、大体のstepを探せばなんとかなるかもしれない。