Wie verwende ich AWS S3 CLI, um Dateien in BASH zu stdouten?
Fange ich ein bash-script, welches einen Pfad in S3 (als angegeben, um den ls Befehl) und sichern Sie die Inhalte aller file-Objekte zu stdout
. Im wesentlichen möchte ich replizieren cat /path/to/files/*
außer S3, z.B. s3cat '/bucket/path/to/files/*'
. Meine erste Neigung, auf der Suche in den Optionen ist die Verwendung der cp
Befehl, um eine temporäre Datei und dann cat
.
Hat jemand versucht, dies oder ähnliches gibt es bereits einen Befehl, den ich bin nicht der Suche nach die nicht es?
InformationsquelleAutor der Frage Neil C. Obremski | 2015-02-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies können Sie erreichen, wenn Sie pass
-
für das Ziel deraws s3 cp
Befehl.Zum Beispiel
$ aws s3 cp s3://mybucket/stream.txt -
.Was Sie zu tun versuchen, ist so etwas wie das? ::
InformationsquelleAutor der Antwort quiver
Wenn Sie eine version der AWS-CLI nicht unterstützt, ist das kopieren nach "-" Sie können auch " /dev/stdout:
Eventuell möchten Sie auch die
--quiet
- flag, um zu verhindern, dass eine Zusammenfassung Zeile wie die folgende aus, an die angehängt wird, um Ihre Ausgabe:InformationsquelleAutor der Antwort Drew
Können Sie versuchen, mit s3streamcates unterstützt bzip, gzip und xz-Formate.
Installieren mit
sudo pip install s3streamcat
Verwendung:
InformationsquelleAutor der Antwort samarth
Ah ha!
https://pypi.python.org/pypi/s3cat/1.0.8
Schreibe ich mehr Zeichen zur Befriedigung der Anforderung Länge.
InformationsquelleAutor der Antwort Neil C. Obremski
Wenn Sie es wünschen, dies zu erreichen BASH verwenden, müssen Sie die call-out an eine externe app wie die AWS-Befehlszeilen-Schnittstelle (CLI). Es muss nicht eine KATZE entspricht, so müssen Sie die Datei lokal kopieren, und dann die KATZE.
Alternativ können Sie/schreiben eine app, die direkt ruft den AWS-SDK, die für Sprachen wie Python, PHP, Java. Durch die Verwendung des SDKs wird der Inhalt der Datei kann abgerufen werden in-memory-und dann an stdout.
InformationsquelleAutor der Antwort John Rotenstein