2016-07-29 34 views
1

にパラメータを受け付けない:AWS S3 - AWS-CLI s3api私はAWS-CLI以下のように使用して氷河からオブジェクトを復元しようとしていますbashの変数

aws s3api restore-object --restore-request Days=7 --bucket mybucket --key some-file.ext 

これは素晴らしい作品。しかし、私は、スクリプトではなく、何かしようとした場合、ファイルの束にこれをしたい:

$ export I="some-file.ext" 
$ aws s3api restore-object --restore-request Days=7 --bucket mybucket --key $I 

AWS-cliを返します。このエラー:どんなに私が取るてmanualy場合、含まれているものを$I

An error occurred (404) when calling the RestoreObject operation: Not Found

をAWS-CLIそれが動作する値とパス:

$ echo $I 
some-other-file.ext 
$ aws s3api restore-object --restore-request Days=7 --bucket mybucket --key some-other-file.ext 

を、私は同じキー上の操作を繰り返した場合、それは確認を返します。

$ aws s3api restore-object --restore-request Days=7 --bucket mybucket --key some-other-file.ext 

An error occurred (RestoreAlreadyInProgress) when calling the RestoreObject operation: Object restore is already in progress

AWS-CLIの私のバージョンは次のとおりです。

$ aws --version 
aws-cli/1.10.50 Python/2.7.6 Linux/3.13.0-92-generic botocore/1.4.40 

は、どのように私はbashの変数を使用して-keyパラメータを渡すことができますか?その他の提案? xargsのはまた別のエラーを持つものの失敗:

-L 1 xargsのなし
$ {echo list of files one per line} | xargs -L 1 aws s3api restore-object --restore-request Days=7 --bucket mybucket --key 

An error occurred (404) when calling the RestoreObject operation: Not Found xargs: aws: exited with status 255; aborting

かさえもが,で区切られたファイルの一覧を印刷して:

xargs: aws: exited with status 255; aborting

であっても、それは上記のような404として失敗しthis answerしようとしています。

ファイルパスをで "スクリプトファッション"でaws-cliに渡す方法はありますか?

答えて

1

私は戻ってきて、ファイルのリストを生成している間に、grepコマンドが出力を色づけしていたので、いくつかのカラーコードがマッチの前後に挿入されていることが分かりました。

端末の設定によって、これらのカラーコードが表示されませんでした。 16進数のダンプ(または他のエディタ)でファイルを調べると、カラーコードがパスを壊していたことが明らかでした。

解決策:grep --color=no私のリスト生成スクリプトで。

私の悪い!

関連する問題