0

データパイプラインを使用してDynamo DBデータをS3に転送しています。 S3バケットではバックアップが取れますが、複数のファイルに分割されています。次のコマンドを実行し、私はシェルコマンドのアクティビティを使用し、単一のファイルにデータを取得するには:AWSデータパイプラインのShellCommandActivity

aws s3 cat #{myOutputS3Loc}/#{format(@scheduledStartTime,'YYYY-MM-dd')}/* > #{myRenamedFile} 

これは#{myRenamedFile}という名前の単一のファイルにS3フォルダに存在するすべてのファイルを連結する必要があります。しかし、私は、データパイプラインで、次のエラーが表示されます。

usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters] To see help text, you can run: aws help aws <command> help aws <command> <subcommand> help aws: error: argument subcommand: Invalid choice, valid choices are: ls | website cp | mv rm | sync mb | rb 

これはcatは、シェルコマンドのアクティビティでサポートされていないか、何かが間違ってここに存在しているということですか?異なるファイルをS3自体の1つのファイルに結合する他の方法はありますか?

答えて

0

aws s3にはcatコマンドがありません。その他のオプション:

  • cp/syncファイルとCATENATE catコマンドを使用して、すべてのファイルのシェルで
  • aws s3 cp s3://<file> -を呼び出すことによって、リストをファイル名とループを取得し、新しいファイルに出力を追加します。ファイルが
+0

を標準出力にコピーされた場合、私は私のローカルマシンにファイルをCPにしようとしたあなたはcp--recursiveオプションを指定して、単一のコマンドでこれを行うことができますが、--recursiveがサポートされていません 'AWS S3のcp#{myOutputS3Loc​​} /# {/ home/user/Desktop --reursive'がエラーになります。[Errno 13]権限が拒否されました: '/ home/user' – rightCoder

+0

あなたは持っていませんおそらく 'root'によって所有されている'/homeuser'に書き込む許可を与えます。 'chmod'を使って権限を変更するか、S3ファイルを'/tmp'にコピーしてみてください。 – helloV

関連する問題