2016-06-08 15 views
0

Ich habe eine geplante Marklogic Aufgabe jeden Tag, wo ich einen S3-Bucket zugreifen, eine Datei (test.xml) in einem Verzeichnis verarbeiten und dann eine Flag-Datei hinzufügen (test.done) in dasselbe Verzeichnis, um zu benachrichtigen, dass die Datei verarbeitet wurde. Ich muss die Dateien (sowohl test.xml und test.done) in regelmäßigen Abständen basierend auf der Verfügbarkeit der Flag-Datei löschen. Gibt es in Amazon eine Option, einen Job zu erstellen, der diese Dateien in regelmäßigen Abständen löscht?Zeitplan Job in AWS zum Löschen von Dateien in S3-Bucket basierend auf der Verfügbarkeit von Flag-Dateien

Gibt es eine Option, um xdmp zu verwenden: http-delete()? Wenn ja, kann jemand eine Beispielanforderung mit Header teilen, um es zu tun?

Antwort

2

In MarkLogic gibt es keine unterstützte Möglichkeit zum Löschen von Dateien oder Verzeichnissen. Sie können jedoch ihren Inhalt auf Null setzen, indem Sie ihnen einen leeren Textknoten hinzufügen.

Ich sagte keine "unterstützte" Art und Weise. Es gibt jedoch zwei Funktionen in MarkLogic, die existieren: xdmp: filesystem-directory-delete und xdmp: filesystem-file-delete. Sie sind undokumentiert, was auch ein Indikator dafür ist, dass sie nicht unterstützt werden und Änderungen unterliegen, glaube ich. Also würde ich den Einsatz dieser für die Produktion warnen. http://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingObjects.html

Eine weitere Option ist zu montieren S3 auf dem lokalen Dateisystem der Maschine läuft Marklogic und das System nutzen, um die Dateien zu löschen:

Um die Dateien über HTTP, überprüfen Sie die API zum Löschen über AWS zu löschen . In diesem Fall könnte MarkLogic auch das test.done-Flag in ein Verzeichnis im lokalen Dateisystem in Form einer Warteschlange schreiben und sie vom Betriebssystem aus verarbeiten.

+0

Danke David. Ich werde diese Option versuchen – Selva