3部作
- AWS CLI (この記事)
- Rubymine (次に書く)
- Docker for Windows (その次に書く)
AWS CLI で s3 にファイルあげるときに日本語のファイル名でエラー
以下のような感じのエラーが出たりしたとき
UnicodeEncodeError: 'utf-8' codec can't encode
とか
Please check your locale settings. The filename was decoded as: ANSI_X3.4-1968 On posix platforms, check the LC_CTYPE environment variable.
ざっくり手順
- たぶんそれはpython2 だから python3 にあげる
- やり直す
- さらに失敗し、それはファイル名が utf-8 ではなく sjis なのかもしれないとする
CentOS6の場合
-
python3 へ
$ yum install python34 # もしくは yum search python | grep 3 ぐらいで探す $ yum install python34-setuptools # これは easy_install 使うため
この時点で easy_install が2つか3つになってる
たとえばこんな感じ-rwxr-xr-x 1 root root 323 11月 12 09:38 2010 /usr/bin/easy_install -rwxr-xr-x 1 root root 331 11月 12 09:38 2010 /usr/bin/easy_install-2.6 -rwxr-xr-x 1 root root 334 10月 11 00:17 2016 /usr/bin/easy_install-3.4
-
やりなおす
$ aws s3 うんたら
-
それでだめなら言語設定ちゃんとする
sjis なら以下のような感じで/etc/sysconfig/i18nLANG="ja_JP.sjis" LC_CTYPE="ja_JP.sjis" SUPPORTED="ja_JP.sjis:ja_JP:ja" SYSFONT="latarcyrheb-sun16"
ここで使えるロケールは以下でチェックできる
$ locale -a
sjis はなかったので、以下のような感じで追加
$ localedef -f SHIFT_JIS -i ja_JP ja_JP.SJIS
参考