Wie zum extrahieren von Dateien aus einem zip-Archiv, in S3
Habe ich ein zip-Archiv hochgeladen in S3 an einem bestimmten Ort (z.B. /foo/bar.zip)
Ich möchte zum extrahieren der Werte innerhalb bar.zip und legen Sie es unter /foo, ohne zu downloaden oder neu hochladen die Dateien extrahiert haben. Wie kann ich dies tun, so dass S3 ist behandelt so ziemlich wie ein Datei-system
Du musst angemeldet sein, um einen Kommentar abzugeben.
S3 ist nicht wirklich entwickelt, um dies zu ermöglichen; normalerweise müssten Sie die Datei herunterladen, Bearbeiten und hochladen der Dateien extrahiert werden sollen.
Allerdings kann es ein paar Optionen:
Könnten Sie montieren die S3-bucket als ein lokales Dateisystem mit
s3fs
undFUSE
(siehe Artikel und github Website). Dieser erfordert noch die Dateien heruntergeladen und hochgeladen, aber es verbirgt diese Vorgänge sich hinter einer Dateisystem-Schnittstelle.Wenn Ihr Hauptanliegen ist, zu vermeiden, herunterladen von Daten aus AWS auf Ihrem lokalen Rechner, dann kannst du natürlich herunterladen der Daten auf einen remote - EC2-Instanz und die Arbeit dort, mit oder ohne
s3fs
. Dies hält die Daten in Amazon-Rechenzentren.Können Sie in der Lage sein, um die Ausführung von remote-Operationen auf die Dateien, ohne Download auf Ihrem lokalen Rechner, mit AWS Lambda.
Würden Sie brauchen, zu erstellen, zu Verpacken und laden Sie ein kleines Programm, geschrieben in
node.js
zugreifen, entpacken und die Dateien hochladen. Diese Verarbeitung findet auf die AWS-Infrastruktur hinter den kulissen, so dass Sie nicht brauchen, um das herunterladen von Dateien auf Ihrem eigenen Computer. Finden Sie die FAQs.Schließlich müssen Sie einen Weg finden, auslösen dieser code, in der Regel, im Lambda, dies würde automatisch ausgelöst werden, indem das hochladen der zip-Datei auf S3. Wenn die Datei bereits vorhanden ist, müssen Sie möglicherweise lösen Sie es manuell, über die
invoke-async
Befehl zur Verfügung gestellt, die von der AWS API. Finden Sie in der AWS Lambda - walkthroughs und API-docs.Dies ist jedoch ziemlich aufwändig zu vermeiden downloads, und wahrscheinlich nur lohnt, wenn Sie brauchen, um große zahlen von zip-Dateien! Beachten Sie auch, dass die Lambda-Funktionen sind beschränkt auf 5 Minuten maximale Dauer (Standard-timeout ist 3 Sekunden), so kann die Zeit, wenn Ihre Dateien sehr groß sind - aber da scratch-Speicherplatz in
/tmp
ist begrenzt auf 500MB, Ihre Größe ist auch begrenzt.