2016-04-15 5 views
3

Wir erstellen eine Anwendung, die Box .NET SDK verwendet, um den Inhalt eines Kundenboxkontos anzuzeigen. Unser Synchronisierungstool verwendet die Box-Inhalts-API, um Ordner und Dateien abzurufen und aus diesen Informationen einen Cache zu erstellen. Um festzustellen, ob Änderungen seit der letzten Synchronisierung stattgefunden haben, vergleichen wir einen Ordner mit dem Feld "modified_at".Box Content API: Wird das Feld "modified_at" des übergeordneten Ordners beim Löschen eines Elements aus dem Ordner aktualisiert?

Beim Einfügen oder Aktualisieren einer Datei wird der übergeordnete Ordner field_modified_at auf den korrekten Zeitstempel aktualisiert.

Beim Löschen einer Datei bleibt der Zeitstempel des übergeordneten Ordners derselbe. Ist es ein Fehler oder das richtige Verhalten?

offizielle Forum Frage: https://community.box.com/t5/Developer-Forum/Box-Content-API-Is-modified-at-field-of-parent-folder-updated/td-p/15335

Antwort

1

Dies ist ein bekanntes Problem, aber wir haben derzeit keine Zeitleiste an einer Lösung. Hier ist eine Problemumgehung, um festzustellen, ob die Dateien kürzlich gelöscht wurden.

(1) Rufen Sie die Ereignis-API mit folgenden Parametern auf: "stream_type = admin_logs & event_type = delete". Dies wird eine Liste der Elemente, die gelöscht wurden, zusammen mit der übergeordneten Ordner-ID jedes Elements zurückgeben.

Beispiel Anfrage

curl "https://api.box.com/2.0/events?stream_type=admin_logs&event_type=delete" -H "Authorization: Bearer AUTH_TOKEN" 

Beispielantwort

{ 
    "chunk_size": 1, 
    "next_stream_position": "0000000000000000000", 
    "entries": [ 
    { 
     "source": { 
     "item_type": "file", 
     "item_id": "00000000000", 
     "item_name": "example-file.txt", 
     "parent": { 
      "type": "folder", 
      "name": "Example Folder Name", 
      "id": "0000000000" 
     } 
     }, 
     "created_by": { 
     "type": "user", 
     "id": "000000000", 
     "name": "Example Name", 
     "login": "[email protected]" 
     }, 
     "created_at": "2016-04-15T00:00:00-07:00", 
     "event_id": "00000000-0000-0000-0000-000000000000", 
     "event_type": "DELETE", 
     "ip_address": "Unknown IP", 
     "type": "event", 
     "session_id": null, 
     "additional_details": { 
     "version_id": "00000000000" 
     } 
    } 
    ] 
} 

(2) Verwenden Sie die next_stream_position zurück in Schritt 1 bei nachfolgenden Aufrufen die gelöschten Objekte nach diesem Punkt zu erhalten.

+0

Diese Lösung ist nicht ideal, da wir alle Löschungsereignisse, Datei oder Ordner und unabhängig vom übergeordneten Ordner verarbeiten müssen. Es wird unsere Synchronisationslogik ziemlich unordentlich machen. Ich denke, wir werden am Ende auf eine Lösung für dieses Problem warten ... – Gabriel