Python + Transloadit
Mit pytransloadit, dem gepflegten Python-Client für die Transloadit REST API, eine lokale Datei hochladen und verarbeiten.
Ausführbare Anleitung
Integration aufbauen
Das Skript liest einen Dateipfad von der Befehlszeile, lädt die Datei hoch, ändert die Größe des Bildes, wartet auf den Abschluss und gibt die Assembly ID aus.
- Erstellen Sie eine virtuelle Umgebung und installieren Sie pytransloadit.
- Setzen Sie TRANSLOADIT_KEY und TRANSLOADIT_SECRET in der Prozessumgebung.
- Führen Sie python process_image.py path/to/photo.jpg aus.
Installieren
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade 'pytransloadit>=2,<3'process_image.py
import os
import sys
from transloadit import client
transloadit = client.Transloadit(
os.environ['TRANSLOADIT_KEY'],
os.environ['TRANSLOADIT_SECRET'],
)
assembly = transloadit.new_assembly()
with open(sys.argv[1], 'rb') as input_file:
assembly.add_file(input_file)
assembly.add_step('resize', '/image/resize', {
'width': 1200,
'height': 1200,
'resize_strategy': 'fit',
})
response = assembly.create(retries=5, wait=True)
if response.data.get('error'):
raise RuntimeError('Media processing failed')
print(response.data['assembly_id'])Authentifizierung
- Der Transloadit Auth Key und das Auth Secret werden aus Umgebungsvariablen des Servers gelesen und beide an das offizielle Python-SDK übergeben.
- Das SDK signiert Anfragen, wenn das Secret übergeben wird; committen Sie keinen der beiden Zugangsdatenwerte in die Versionsverwaltung.
- Verwenden Sie ein festes Template, wenn Anwendungsnutzer Dateien auswählen, oder validieren Sie jeden dynamischen Step, bevor Sie eine Assembly erstellen.
Einschränkungen und Hinweise zum Betrieb
- wait=True blockiert den Prozess, bis die Assembly abgeschlossen ist. Speichern Sie bei Web-Workern und lang laufenden Medienjobs die Assembly ID und verfolgen Sie den Abschluss asynchron.
- Version 2 erfordert Python 3.12 oder neuer. Der Installationsbefehl wählt Version 2 ausdrücklich aus, statt unter Python 3.9 bis 3.11 stillschweigend das ältere SDK 1.x zu installieren.
- Die Option retries begrenzt die Wiederholungsversuche bei fortsetzbaren Uploads sowie bei ratenbegrenzter Assembly-Erstellung oder Statusabfrage; sie bietet keine Idempotenz auf Anwendungsebene. Wenn bei wait=True die Wiederholungsversuche für die Statusabfrage ausgeschöpft sind, wird AssemblyPollingError ausgelöst, während die Assembly möglicherweise noch ausgeführt wird. Nutzen Sie die Wiederherstellungsdetails der Ausnahme, um die bestehende Assembly weiterzuverfolgen, statt den Job blind erneut zu übermitteln.
Weitere Integrationen