Nachdem Sie die Ersatz-Upload-URL generiert haben, können Sie nun Ihr Video ersetzen. Dies erfolgt mit der Methode des chunkweisen Uploads mit erneuter Versuchsbearbeitung.
Chunkweiser Upload
Beispiel
curl --location 'https://asset-in.video-cdn.net/chunks/env/prod/vms/<VideoManager_ID>/videos/<VIDEO_ID>? bucketId=<BUCKET_ID>&fileId=<FILE_ID>&userId=<USERID>&__token__=<SECURITY_TOKEN>' \ --header 'Content-Type: application/octet-stream' \ --header 'Mi24-Upload-Current-Chunk: 1' \ --header 'Mi24-Upload-Total-Chunks: 1' \ --data '@/Users/<USERNAME>/Downloads/<FILE_NAME>.mp4'
URL | Beschreibung |
---|---|
UPLOAD_URL | Die vollständige Upload-URL aus dem vorherigen Schritt. Beachten Sie, dass das Sicherheitstoken als Parameter enthalten sein mus |
Headers | |
Mi24-Upload-Total-Chunks | Gesamtanzahl der Chunks. Das obige Beispiel verwendet 1 Chunk. |
Mi24-Upload-Current-Chunk | Aktuelle Chunk-Nummer, beginnend mit 1. |
Content-Type | Geben Sie "application/octet-stream" als Content-Type an, wie im obigen Beispiel. |
Befehlszeilenoptionen | |
--data-binary <@/FILENAME> | Laden Sie die Bytes der Binärdaten hoch und stellen Sie sicher, dass Sie den Dateinamen mit "@" versehen. Geben Sie dann den Dateinamen (und bei Bedarf den Pfad) der lokalen Videodatei an, die hochgeladen werden soll. |
Sie müssten die obige Beispielanfrage 1 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.
R
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.