Python SDK in Frame.io – Upload-Leitfaden
Python SDK in Frame.io – Upload-Leitfaden
In diesem Leitfaden wird erklärt, wie Sie mit dem Python SDK in Frame.io (frameio) Dateien in Frame.io hochladen.Im SDK werden mehrteilige Uploads von Chunks in S3 über vorsignierte URLs verarbeitet, mit parallel ausgeführten Prozessen, automatischen Wiederholungsversuchen und optionaler Fortschrittsverfolgung.Informationen zu den allgemeinen API-Konzepten für den Upload (Upload-URLs, Header, Chunking) finden Sie unter So funktionieren lokale und Remote-Uploads.
Voraussetzungen
Authentifizierung
Sie verfügen über einen funktionierenden Frame.io-Client. Informationen zum Setup finden Sie im Authentifizierungsleitfaden.
Schnellstart
Das ist alles.Im SDK wird die Datei basierend auf den Upload-URLs, die von der API zurückgegeben werden, in Chunks aufgeteilt und parallel hochgeladen. Wiederholungsversuche werden automatisch verarbeitet.
Grundlegendes
Der lokale Upload ist ein zweistufiger Prozess:
Dateiressource erstellen
Rufen Sie client.files.create_local_upload() mit Dateinamen und -größe auf.In der API wird eine Platzhalterdatei erstellt und es werden vorsignierte S3 PUT-URLs zurückgegeben, eine pro Chunk.Die Anzahl der URLs (und daher Chunks) ist abhängig von der Dateigröße.
Hochladen in S3
Die Upload-URLs werden von FrameioUploader aus der Antwort gelesen. Anschließend wird Ihre Datei in passende Chunks aufgeteilt. Mit PUT und einem Thread-Pool werden die einzelnen Chunks parallel zu ihrer jeweiligen URL platziert.Jede Anfrage enthält die erforderlichen Header x-amz-acl: private und Content-Type.
Der Upload geht direkt von Ihrer Anwendung in S3, er läuft nicht über die Frame.io-API-Server.Das ist dasselbe Muster, das von Diensten wie YouTube, Vimeo und Dropbox für große Datei-Uploads verwendet wird.
Verwendung von FrameioUploader
FrameioUploader ist die empfohlene Methode zum Hochladen von Dateien.Der Chunk-Uploader auf der niedrigeren Ebene wird umhüllt, und alle Details werden verarbeitet: Upload-URLs werden aus der API-Antwort extrahiert, erforderliche Header werden gesetzt, die Datei wird aufgeteilt und parallel hochgeladen.
Fortschrittsverfolgung
Mit dem Rückruf on_progress verfolgen Sie den Fortschritt des Uploads:
Der Rückruf wird einmal nach Abschluss jedes Chunks aufgerufen, mit den bisher aufgelaufenen hochgeladenen Bytes und der gesamten Dateigröße.
Rich-Fortschrittsbalken
Nutzen Sie Rich für eine elegante Terminal-Erfahrung:
Konfiguration
In FrameioUploader werden mehrere optionale Parameter akzeptiert:
Vollständiges Beispiel
Ein vollständiges Beispiel mit Authentifizierung, Upload und Fortschrittsverfolgung:
Wenn Sie vollständige Kontrolle über den Upload-Prozess benötigen – zum Beispiel, um das Chunking (Aufteilung in Chunks) manuell zu verarbeiten, mit einer asynchronen Pipeline zu integrieren oder die Logik für Wiederholungen anzupassen –, sehen Sie sich So funktionieren lokale und Remote-Uploads an. Dort finden Sie den rohen API-Fluss und ein eigenständiges Python-Skript-Beispiel.
Remote-Upload
Wenn Ihre Datei bereits über eine öffentliche URL zugänglich ist, verwenden Sie stattdessen den Remote-Upload.Es ist kein Chunking erforderlich, die Datei wird direkt von Frame.io abgerufen:
Für den Remote-Upload besteht derzeit eine Dateigrößenbegrenzung von 50 GB.Nutzen Sie bei Dateien von mehr als 50 GB stattdessen den lokalen Upload.
Überprüfen des Upload-Status
Nach dem Upload können Sie überprüfen, ob die Datei empfangen wurde: