Ich habe ein Zip-Archiv in S3 an einem bestimmten Speicherort hochgeladen (zB /foo/bar.zip) Ich möchte die Werte in bar.zip extrahieren und unter/foo, ohne die extrahierten Dateien herunterzuladen oder erneut hochzuladen. Wie kann ich das tun, so dass S3 ziemlich wie ein Dateisystem behandelt wirdSo extrahieren Sie Dateien aus einem Zip-Archiv in S3
Antwort
S3 ist nicht wirklich entworfen, um dies zu ermöglichen; normalerweise müssten Sie die Datei herunterladen, verarbeiten und die extrahierten Dateien hochladen.
Allerdings kann es ein paar Optionen sein:
Sie können die S3 Eimer als lokales Dateisystem mounten mit
s3fs
undFUSE
(siehe article und github site). Dies erfordert immer noch, dass die Dateien heruntergeladen und hochgeladen werden, aber es versteckt diese Operationen hinter einer Dateisystemschnittstelle.Wenn Ihr Hauptanliegen ist es, Daten aus AWS auf Ihrem lokalen Rechner zu vermeiden, das Herunterladen, dann natürlich können Sie die Daten auf einem entfernten EC2 instance herunterladen und die Arbeit dort tun, mit oder ohne
s3fs
. Dadurch bleiben die Daten in Amazon-Rechenzentren erhalten.Möglicherweise können Sie Remote-Vorgänge für die Dateien ausführen, ohne sie auf Ihren lokalen Computer herunterzuladen, indem Sie AWS Lambda verwenden.
Sie müßten, Paket erstellen und ein kleines Programm in node.js
dem Zugriff geschrieben laden, entpacken und die Dateien hochgeladen werden. Diese Verarbeitung findet im Hintergrund in der AWS-Infrastruktur statt, so dass Sie keine Dateien auf Ihren Computer herunterladen müssen. Siehe die FAQs.
Schließlich müssen Sie eine Möglichkeit finden, diesen Code auszulösen - normalerweise würde dies in Lambda automatisch durch den Upload der ZIP-Datei auf S3 ausgelöst. Wenn die Datei bereits vorhanden ist, müssen Sie sie möglicherweise manuell über den von der AWS-API bereitgestellten Befehl invoke-async
auslösen. Siehe AWS Lambda walkthroughs und API docs.
Dies ist jedoch eine ziemlich aufwendige Möglichkeit, Downloads zu vermeiden, und es lohnt sich wahrscheinlich nur, wenn Sie eine große Anzahl von Zip-Dateien verarbeiten müssen! Beachten Sie auch, dass Lambda-Funktionen auf 5 Minuten maximale Dauer begrenzt sind (default timeout ist 3 Sekunden), so kann die Zeit ausgehen, wenn Ihre Dateien extrem groß sind - aber da der Speicherplatz in /tmp
auf 500 MB begrenzt ist, ist Ihre Dateigröße ebenfalls begrenzt.
- 1. So extrahieren Sie Daten aus einem Promise
- 2. So finden Sie doppelte Dateien in einem AWS S3-Bucket?
- 3. PHP ZipArchiv Was bedeuten Statuswerte?
- 4. So extrahieren Sie Folien aus einem Video mit Python
- 5. So extrahieren Sie Anhänge von MSG-Dateien
- 6. So extrahieren Sie formatierten Textinhalt aus PDF
- 7. So extrahieren Sie angepasste Splines aus einem GAM (`mgcv :: gam`)
- 8. So extrahieren Sie eine "Registrierung" URL aus einem Mail-Inhalt
- 9. So extrahieren Sie Features aus reinem Text?
- 10. So extrahieren Sie URLs aus dem Text
- 11. So extrahieren Sie Feldwerte aus Abfrageergebnis
- 12. Omnet: So extrahieren Sie Daten aus CMessage
- 13. Beispieldaten aus VCF-Dateien extrahieren
- 14. So löschen Sie Dateien in Amazon S3 von Ruby
- 15. So extrahieren Sie Daten aus Pyplot Abbildung
- 16. So extrahieren Sie einen Teilstring in Perl
- 17. Extrahieren von Tagen aus einem numpy.timedelta64 Wert
- 18. So extrahieren Sie Dateien von Windows Vista Complete PC Backup?
- 19. Extrahieren von Dateien aus einem Anlagenfeld in einer Access-Datenbank
- 20. So extrahieren Sie Daten (Dateianzahl) aus MSI "Datei" Tabelle
- 21. Titel aus PDF-Dateien extrahieren?
- 22. So extrahieren Sie Zeilen aus Textdatei "Block" in Schleife
- 23. Erstellen von Verzeichnissen in einem ZipArchiv C# .Net 4.5
- 24. Extrahieren Sie Dateien in Ordnern aus Zip-Archiv
- 25. So extrahieren Sie Filter aus dem BufferedGrid-Objekt in EXTJS
- 26. So übertragen Sie Dateien zwischen AWS s3 und AWS ec2
- 27. So kopieren Sie die Liste der öffentlichen S3-Dateien in private S3-Buckets
- 28. So extrahieren Sie den Dateinamen aus dem Dateipfadnamen?
- 29. So extrahieren Sie Ebenen aus einer Photoshop-Datei? C#
- 30. Extrahieren von Zeichenfolgen aus PE-Dateien
Jetzt ist die Grenze Ausführungszeit auf AWS Lambda 5 Minuten (pro https://serifandsemaphore.io/aws-lambda-going-beyond-5-minutes-34e381e71231#.blrcnlxpk). Toll zu beachten. – thadk
/tmp scratch Raum in Lambda ist auch nur 500mb (perhttps: //aws.amazon.com/lambda/faqs/) – thadk
@thadk Danke für die Zeiger - haben die Antwort aktualisiert! – DNA