blog
Wercker step-s3sync でファイル名に日本語を含んでいる場合に Sync できない問題の解決方法(小ネタ)
はじめに
middleman-blog の custom_collections を使ってシリーズ記事を生成(ファイル名に日本語を含む)したところ、Wercker の step-s3sync で Amazon S3 にシンクできない問題が発生したので、解決に至るまでの経緯をメモとして残しておきます。
原因
Wercker の step-s3sync が内部で使っている s3cmd が Python で動いていて、Python デフォルトエンコーディングが ASCII のため日本語ファイルが扱えないそうな。エンコーディングを UTF-8 にしてやると解決する。
結論
これを解決するために Docker のコンテナまでローカルで走らせて step に script を書いてなんとかエンコーディングを変えるよう試みたが、結局 step-s3sync にオプション(--encoding=ENCODING
)を渡してやることで解決できました(なんて簡単!)。
deploy:
steps:
- s3sync:
key_id: $AWS_ACCESS_KEY_ID
key_secret: $AWS_SECRET_ACCESS_KEY
bucket_url: $AWS_BUCKET_URL
source_dir: build/
delete-removed: true
opts: --encoding=utf-8
終わりに
結論に至るまでに無駄に調べてしまった Wercker CLI と Docker Toolbox については別の機会に記事にしておきたい。