blog
Middleman 4 の新機能を試す シリーズWercker の step-s3sync で起こった 「Parameter problem: Invalid source/destination」エラーの直し方(小ネタ)
はじめに
Wercker の step-s3sync を使っていて突然 Sync できないと思ったら step-s3sync のところでエラーが出ていた。
/pipeline/.../s3cmd sync --encoding=utf-8 --delete-removed --verbose ./ whiskers.nukos.kitchen
ERROR: Parameter problem: Invalid source/destination: './' 'whiskers.nukos.kitchen'
どうやら s3cmd sync
で S3 のバケット指定が上手くいっていないらしい。実際の指定はこれ。
- 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
$AWS_BUCKET_URL
には s3://whiskers.nukos.kitchen
が入っているのになぜか whiskers.nukos.kitchen
になってしまっている。
修正方法
以前、バケット URL をはじめて設定したときに whiskers.nukos.kitchen
で設定したことがあったのを思い出して、キャッシュかなにかが残っている可能性があったので Wercker のキャッシュを削除してみたところ無事に動くことを確認できた。
その他に試したこと
step-s3sync の設定で明示的に delete-removed: true
を指定していたが、これを削除した。step-s3sync のオプションでは明示的に指定しない場合、デフォルトでは true
になっているし不要な設定だった。
もう一つ --acl-public
オプションを追加した。
- s3sync:
key_id: $AWS_ACCESS_KEY_ID
key_secret: $AWS_SECRET_ACCESS_KEY
bucket_url: $AWS_BUCKET_URL
source_dir: build/
opts: --encoding=utf-8 --acl-public
このオプションを追加したことによって、何らかの理由でキャッシュがクリアされ正常に動作するようになったが再発したので根本的な解決案ではない。
シリーズ
- Middleman 4 をインストールしてみる
- Middleman 4 で middleman-blog をインストールしてみる
- Browserify を試してみる
- Gulp から Browserify を実行する
- Watchify を使った Browserify の 変更監視と自動バンドル
- Gulp から Watchify と Browserify を使う
- Middleman 4 の External Pipeline(外部パイプライン)を試す
- Middleman 4 の External Pipeline を活用した Sass のプリコンパイルと Browserify のバンドル
- Middleman 4 で middleman-syntax を使った Syntax Highlight(小ネタ)
- gulp-sass で Font Awesome を導入する方法(Bourbon, Neat 対応)
- Middleman 4 の External Pipeline に対応した Skeleten(テンプレート)「middleman-tail」 を作った
- Wercker の step-s3sync で起こった 「Parameter problem: Invalid source/destination」エラーの直し方(小ネタ)