0

我正在使用數據管道將Dynamo DB數據傳輸到S3。在S3存儲桶中,我獲得了備份,但它被拆分成多個文件。爲了獲得在一個文件中的數據我用它運行以下命令Shell命令活動:AWS Data Pipeline中的ShellCommandActivity

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

這應該串聯所有存在於S3文件夾名爲#{myRenamedFile}單個文件的文件。但我得到以下錯誤的數據管道:

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不Shell命令活動支持,或者是有什麼錯在這裏?有沒有其他方法可以將不同的文件合併到S3中的單個文件中?

回答

0

aws s3中沒有cat命令。其他選項:

  • cp/sync文件和鏈狀的所有文件在外殼
  • 使用cat命令調用aws s3 cp s3://<file> -熬過列表中的文件名和環路和輸出附加到一個新的文件。你可以用--recursive選項來實現在一個單一的命令cp但不支持--recursive如果文件被複制到stdout
+0

我試圖CP文件到我的本地機器'AWS S3 CP#{myOutputS3Loc​​} /# {format(@scheduledStartTime,'YYYY-MM-dd')}// home/user/Desktop --recursive'但是我得到錯誤[Errno 13] Permission denied:'/ home/user' – rightCoder

+0

您還沒有權限寫入'/ homeuser',可能由'root'擁有。可以使用'chmod'改變權限,或者嘗試將S3文件複製到'/ tmp' – helloV

相關問題