0

Я передаю данные DB Dynamo на S3 с использованием Data Pipeline. В ведро S3 я получаю резервную копию, но она разделена на несколько файлов. Для того, чтобы получить данные в одном файле я использовал активность командной оболочки, который запускает следующую команду:ShellCommandActivity в AWS Data Pipeline

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 не поддерживается в командной оболочке деятельности или есть что-то здесь не так? Есть ли другой способ объединить разные файлы в один файл в S3?

ответ

0

cataws s3. Другие варианты:

  • cp/sync файлы и сцеплять все файлы, используя cat команды в оболочке
  • Получить имена файлов и цикл по списку, вызвав aws s3 cp s3://<file> - и добавить вывод в новый файл. Вы можете сделать это в одной команде с --recursive возможностью cp но --recursive не поддерживается, если файл копируется на стандартный вывод
+0

Я пытался Cp файлы на моей локальной машине 'AWS s3 ф # {myOutputS3Loc}/# {format (@scheduledStartTime, 'YYYY-MM-dd')}// home/user/Desktop --recursive', но я получаю ошибку [Errno 13] Разрешение отклонено: '/ home/user' – rightCoder

+0

У вас нет разрешений на запись в '/ homeuser', вероятно, принадлежащих' root'. Либо измените разрешения с помощью 'chmod', либо попробуйте скопировать файлы S3 в'/tmp' – helloV

Смежные вопросы