S3cmdのProxy設定について
s3cmdを使用して動いていたバッチ処理で、proxy設定を追加しようとしたら色々大変だったお話。
S3cmdとは
公式ページより。
Windows用にはS3Expressというのがあるらしい。
S3Express : Command Line S3 Client and S3 Backup for Windows
まとめ
- 環境変数(http_proxy)ではなく、設定ファイルに記載する
- proxy_host, proxy_port
- 設定ファイルのデフォルトは「~/.s3cfg」
- コマンド実行時に「-c」で設定ファイルを渡すことも可能
- ↑のproxy設定はPython2.7以上が必要
- Python2のバージョン上げたくない場合はPython3を使用することも可能
- S3cmdのV2以降はPython3を使用することも可能。
- python3を使用する場合にはs3cmdを直接実行するのではなく、「python3 s3cmd」的な感じで実行する必要がある。
経緯とか(読む意味なし)
- 会社でproxyを設定しろよという連絡がきた
- (半)自動化されていたとあるシステムが動かない
- S3cmdの処理で落ちている
Problem: error: [Errno 111] Connection refused
- Proxy設定してないのでは?
- export http_proxy=xxxxx
- export https_proxy=yyyy
- 変わらずエラー
- 調べた → 設定ファイルに書く必要がある
- 設定ファイルに書いた
- python2.7以上で動かせと怒られる
- 2.6.6か何かで動いていた
- python2のバージョンは上げたくない。というかpython3にしたい
- s3cmdは2のみ → s3cmdバージョン2で対応しているらしい → s3cmdのバージョンアップ
- python3をデフォルトにしてs3cmd起動
- python2.7以上で動かせと怒られる
- (゚Д゚)ハァ?
- シバンにpython2が指定してある
- python3に引数でs3cmd渡して起動
- OK