[FIXED] So extrahieren Sie Dateien aus einem Zip-Archiv in S3

Ausgabe

Ich habe ein ZIP-Archiv in S3 an einem bestimmten Ort hochgeladen (z. B. /foo/bar.zip). Ich möchte die Werte in bar.zip extrahieren und unter /foo ablegen, ohne die extrahierten Dateien herunterzuladen oder erneut hochzuladen. Wie kann ich das machen, damit S3 so ziemlich wie ein Dateisystem behandelt wird

Lösung

S3 ist nicht wirklich darauf ausgelegt, dies zuzulassen; Normalerweise müssten Sie die Datei herunterladen, verarbeiten und die extrahierten Dateien hochladen.

Es kann jedoch einige Optionen geben:

  1. Sie können den S3-Bucket als lokales Dateisystem mit s3fsand mounten FUSE(siehe Artikel und Github-Site ). Dies erfordert immer noch das Herunterladen und Hochladen der Dateien, aber es verbirgt diese Operationen hinter einer Dateisystemschnittstelle.

  2. Wenn Ihr Hauptanliegen darin besteht, das Herunterladen von Daten aus AWS auf Ihren lokalen Computer zu vermeiden, können Sie die Daten natürlich auf eine Remote- EC2 -Instance herunterladen und die Arbeit dort erledigen, mit oder ohne s3fs. Dadurch bleiben die Daten in Amazon-Rechenzentren.

  3. Möglicherweise können Sie mit AWS Lambda Remote-Vorgänge an den Dateien ausführen, ohne sie auf Ihren lokalen Computer herunterzuladen .

Sie müssten ein kleines Programm erstellen, packen und hochladen node.js, um auf die Dateien zuzugreifen, sie zu dekomprimieren und hochzuladen. Diese Verarbeitung findet hinter den Kulissen in der AWS-Infrastruktur statt, sodass Sie keine Dateien auf Ihren eigenen Computer herunterladen müssen. Siehe die häufig gestellten Fragen .

Schließlich müssen Sie einen Weg finden, diesen Code auszulösen – normalerweise würde dies in Lambda automatisch durch Hochladen der ZIP-Datei in S3 ausgelöst werden. Wenn die Datei bereits vorhanden ist, müssen Sie sie möglicherweise manuell über den invoke-asyncvon der AWS-API bereitgestellten Befehl auslösen. Sehen Sie sich die AWS Lambda Walkthroughs und API-Dokumente an .

Dies ist jedoch eine recht aufwendige Methode, um Downloads zu vermeiden, und lohnt sich wahrscheinlich nur, wenn Sie eine große Anzahl von ZIP-Dateien verarbeiten müssen! Beachten Sie auch, dass Lambda-Funktionen (seit Oktober 2018) auf eine maximale Dauer von 15 Minuten begrenzt sind ( das Standard-Timeout beträgt 3 Sekunden), sodass die Zeit möglicherweise abgelaufen ist, wenn Ihre Dateien extrem groß sind – da /tmpder Arbeitsspeicher jedoch auf 500 MB begrenzt ist, ist Ihr Die Dateigröße ist ebenfalls begrenzt.


Beantwortet von –
DNA


Antwort geprüft von –
Clifford M. (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like