Nachdem Sie die Upload-URL generiert haben, können Sie jetzt Ihr Video hochladen. Dies erfolgt mit der Chunked-Upload-Methode mit Retry-Handling.
Chunked Upload
Beispiel
curl -X POST -H "Mi24-Upload-Total-Chunks: 10" -H "Mi24-Upload-Current-Chunk: 1" -H "Content-Type:application/octet-stream" --data-binary "@/<FILENAME>" "<UPLOAD_URL>"
URL | Beschreibung |
---|---|
UPLOAD_URL | Die vollständige Upload-URL. Beachten Sie, dass der Sicherheitstoken als Parameter enthalten sein muss. |
Headers (Kopfzeilen) | |
Mi24-Upload-Total-Chunks | Gesamtanzahl der Chunks. Das obige Beispiel verwendet 10 Chunks. |
Mi24-Upload-Current-Chunk | Aktuelle Chunk-Nummer, beginnend mit 1. Das obige Beispiel ist der erste Chunk von insgesamt 10. |
Content-Type | Geben Sie "application/octet-stream" als Content-Type an, wie im obigen Beispiel. |
Befehlszeilenoptionen | |
--data-binary <@/FILENAME> | Laden Sie die Datei als Binärdaten hoch und stellen Sie sicher, dass der Dateiname mit "@" beginnt. Geben Sie dann den Dateinamen (und gegebenenfalls den Pfad) der lokalen Videodatei an, die hochgeladen werden soll. |
Sie müssten die obige Beispielanfrage 10 Mal senden und dabei den aktuellen Chunk jedes Mal erhöhen. Sie können Ihre Datei in so vielen oder wenigen Chunks hochladen, wie Sie möchten, obwohl die Chunk-Größe in der Regel zwischen 2 und 10 MB liegen sollte. Durch die Verwendung einer größeren Anzahl kleinerer Chunks und die Implementierung von Retry-Handling (siehe nächster Abschnitt) können Sie einen reibungsloseren und zuverlässigeren Upload Ihrer Videos erwarten.
Antwortcodes
201 CREATED Erfolgreicher Upload eines einzelnen Chunks. Der gesamte Upload ist erst abgeschlossen, wenn Sie diesen Status für alle Chunks erhalten. Wenn Sie diesen Code für einen hochgeladenen Chunk nicht erhalten, lesen Sie unten "Retry-Handling".
200 OK Das Video-Chunk wurde bereits hochgeladen. Dieser Antwortcode wird zurückgegeben, wenn der Chunk bereits erfolgreich hochgeladen wurde.
4XX ERROR Client-side Fehler. Antwortcode, wenn der Server eine Client-Anfrage aufgrund von Autorisierungsfehlern, Authentifizierungsfehlern oder schlecht formatierten Anfragen ablehnt.
5XX ERROR Serverseitiger Fehler. Antwortcodes, wenn der Server eine Anfrage nicht verarbeiten konnte.
1101Wenn Sie diese Antwort erhalten, bedeutet dies, dass Ihr Upload abgelehnt wurde, da Sie die Grenzen Ihrer gebuchten Speicherkapazität erreicht haben.
Retry-Handling
Wenn die Antwort auf eine Chunk-Upload-Anforderung nicht oder lautet, muss der Chunk erneut hochgeladen werden.
Dies kann aus verschiedenen Gründen geschehen, wie z. B.:
Fehler in der Verbindung über das Internet
Abgelaufener Upload-Token
Rate-Limitierung
Timeout beim Empfang einer Antwort von der API
Um zu vermeiden, dass diese Situationen Ihren Upload unterbrechen, empfehlen wir dringend, Retry-Handling in Ihren Code zu implementieren.
Eine gute Strategie für Retry-Handling besteht darin, zwischen jedem Fehler eine zunehmend längere oder zufällige Zeit zu warten. Es gibt mehrere Optionen, zum Beispiel:
- Warten Sie 1 Sekunde, dann 2, dann 3... erhöhen Sie dabei jedes Mal um eine Sekunde.
- Warten Sie 1 Sekunde, dann 2, dann 3, 5, 8, 13... Erhöhung unter Verwendung einer Fibonacci-Folge.
- Warten Sie zwischen 1 und 5 Sekunden, zufällig ausgewählt.
Unabhängig von der Methode sollten Sie eine Grenze für die Anzahl der Wiederholungen festlegen. Manchmal sind die Ursachen für das Versagen mehr als vorübergehend und keine Menge an Wiederholungen wird erfolgreich sein.