0

Veri Boru Hattı'nı kullanarak Dynamo DB verilerini S3'e aktarıyorum. S3 kepçesinde yedeği aldım ancak birden çok dosyaya bölünmüş durumda.AWS Data Pipeline'da ShellCommandActivity

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

Bu #{myRenamedFile} adında tek dosyaya S3 klasöründe mevcut tüm dosyaları birleştirir olmalıdır: tek bir dosyada verileri almak için aşağıdaki komutu çalışan bir Shell Komutanlığı Etkinliği kullandı. Ama veri boru hattında aşağıdaki hatayı alıyorum:

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 

bu cat Shell Komutanlığı Aktivite desteklenmez veya bir şey yanlış burada var anlamına mı geliyor? Farklı dosyaları S3'ün kendisinde tek bir dosyayla birleştirmenin başka bir yolu var mı?

cevap

0

aws s3 numaralı telefondan cat komutu yoktur. Diğer seçenekler: kabuk

  • yılında cat komutunu kullanarak

    • cp/sync dosya ve catenate tüm dosyaları aws s3 cp s3://<file> - arayarak listeyi dosya isimleri ve döngü alın ve yeni bir dosyaya çıktı ekleyin. Dosya
  • +0

    stdout'a kopyalanır eğer benim yerel makineye dosya cp çalıştı Sen cp için --recursive seçeneğiyle tek komutla yapabilirsiniz ama --recursive desteklenmiyor 'AWS s3 cp # {myOutputS3Loc}/# {format (@scheduledStartTime, 'YYYY-AA-dd')}// home/user/Desktop - recursive' ama hatayı alıyorum [Errno 13] İzin reddedildi: '/ home/user' – rightCoder

    +0

    Sende yok Muhtemelen 'root' tarafından sahip olunan'/homeuser' içinde yazma izni. 'Chmod' kullanarak izinleri değiştirin ya da S3 dosyalarını'/tmp'ye kopyalamayı deneyin. – helloV