Bereitstellen einer Datei durch temporäres Hochladen

In diesem Kapitel erfahren Sie, wie Sie eine Datei vorläufig bereitstellen, indem Sie die Datei temporär hochladen. Das temporäre Hochladen ist besonders bei großen Dateien sinnvoll. Mit der URL (contentLocationUri) zur temporär hochgeladenen Datei können Sie anschließend das DMS-Objekt speichern.

Um eine Datei temporär hochzuladen, müssen Sie folgende Schritte durchführen:

  • Ermitteln der URL zu einem Repository

  • Ermitteln der Linkrelation zum temporären Hochladen der Datei

  • Aufrufen der URL zum temporären Hochladen der Datei

  • Weitere Aufrufe der URL zum temporären Hochladen der Datei (optional)

Ein temporäres Hochladen einer Datei ohne die Angabe einer ID zu einem Repository ist nicht möglich.

Ermitteln der URL zu einem Repository

Im Kapitel Ermitteln eines Repositorys können Sie nachlesen, wie Sie die URL zu einem Repository ermitteln.

Ermitteln der Linkrelation zum temporären Hochladen der Datei

Rufen Sie die URL zu einem Repository wie folgt auf:

Request

GET /dms/r/dee1f3d3-eae8-5d9d-84d8-2d758c5ddc27
Accept: application/hal+json

Das JSON-Objekt zu einem Repository enthält die Linkrelation chunkedupload.

Response

{
        "_links": {
                "chunkedupload": {
                        "href": "/dms/r/dee1f3d3-eae8-5d9d-84d8-2d758c5ddc27/blob/chunk/"
                }
        },
        "id": "dee1f3d3-eae8-5d9d-84d8-2d758c5ddc27"
}

Aufrufen der URL zum temporären Hochladen der Datei

Führen Sie eine HTTP POST-Anforderung mit den Binärdaten als Body auf die URL aus, die Sie in der Linkrelation chunkedupload erhalten haben. Wenn der Vorgang erfolgreich war, erhalten Sie den HTTP-Statuscode 201 und die URL (contentLocationUri) im HTTP-Header Location.

Request

POST /dms/r/dee1f3d3-eae8-5d9d-84d8-2d758c5ddc27/blob/chunk/
Origin: https://baseuri
Content-Type: application/octet-stream

<binary content>

Response

HTTP/1.1 201 Created
Location: /dms/r/dee1f3d3-eae8-5d9d-84d8-2d758c5ddc27/blob/chunk/2018-01-01_temp_master_file_user1_44f7-95a6-58b8400ecf43

Bei der HTTP Post-Anforderung wird der komplette Body als Binärdaten der hochzuladenden Datei behandelt. Ein Upload mittels multipart/form-data ist derzeit nicht möglich.

Die maximale Größe des Bodys ist auf 100 MB begrenzt. Wir empfehlen eine Bodygröße von 25 MB. Wenn Sie größere Dateien hochladen möchten, können Sie die Datei in verschiedene Teilstücke (Chunks) unterteilen. Weitere Informationen finden Sie im folgenden Abschnitt.

Weitere Aufrufe der URL zum temporären Hochladen der Datei (optional)

Sie haben die Möglichkeit, das Hochladen auf mehrere HTTP-Anforderungen aufzuteilen, um bei größeren Dateien einen Timeout zu vermeiden.

Gehen Sie dazu wie folgt vor:

  • Teilen Sie die hochzuladende Datei in verschiedene Teilstücke (Chunks).

  • Laden Sie das erste Teilstück hoch, so wie es unter "Aufrufen der URL zum temporären Hochladen der Datei" beschrieben ist.

  • Laden Sie das nächste Teilstück hoch, indem Sie eine HTTP POST-Anforderung auf die URL ausführen, die Sie im Header der Antwort zum ersten Teilstück unter Location erhalten haben.

  • Wiederholen Sie den vorherigen Schritt nacheinander für alle Teilstücke in der richtigen Reihenfolge.

Request

POST /dms/r/dee1f3d3-eae8-5d9d-84d8-2d758c5ddc27/blob/chunk/2018-01-01_temp_master_file_user1_44f7-95a6-58b8400ecf43
Content-Type: application/octet-stream

<binary content for chunk>

Response

HTTP/1.1 200 OK

Beachten Sie beim Hochladen mehrerer Teilstücke Folgendes:

  • Die Teilstücke dürfen nur sequenziell hochgeladen werden.

  • Die Reihenfolge der HTTP POST-Anforderung der Teilstücke ist strikt einzuhalten.

  • Sollte es bei einer HTTP POST-Anforderung zu einem Fehler kommen (z.B. HTTP-Statuscode ist nicht 200), müssen Sie die Datei in allen Teilstücken erneut hochladen. Das erneute Hochladen einzelner Teilstücke ist nicht möglich.

Sie erhalten auf die Anforderungen folgende mögliche Antworten:

Statuscode

Beschreibung

200 OK

Ein Teilstück wurde erfolgreich hochgeladen.

201 Created

Das erste Teilstück wurde erfolgreich hochgeladen.

404 Not Found

Die Ressource wurde nicht gefunden. Es wurde z.B. eine unbekannte Repository-ID angegeben.

500 Internal Server Error

Es trat ein interner Fehler bei der Verarbeitung auf.