Assembly-Status-Antwort
Transloadit verwendet ein einheitliches Antwortformat zum Erstellen und Abfragen von Assemblies, zum Anhängen von Antworten an Upload-Formulare und zum Senden von Notifications.
Im Folgenden finden Sie ein vollständiges Beispiel einer Transloadit-Antwort. Da Dateien parallel verarbeitet werden,
entspricht die Reihenfolge in results nicht unbedingt der Reihenfolge in uploads. Für einen einzelnen Upload
kann es außerdem mehrere Ergebnisse geben. Um Ergebnisse den Uploads zuzuordnen, können Sie das
Feld original_id verwenden, das in beiden Einträgen vorhanden ist.
Beispielantwort
{
"assembly_id": "7828446e5acd4aa996dce3455ec914e9",
"ok": "ASSEMBLY_COMPLETED",
"message": "The Assembly was successfully completed.",
"warnings": [],
"account_id": "4ce4fb3d9d1842b6ba5d6f3ccee4b066",
"assembly_ssl_url": "https://api2-morven.transloadit.com/assemblies/7828446e5acd4aa996dce3455ec914e9",
"assembly_url": "http://api2-morven.transloadit.com/assemblies/7828446e5acd4aa996dce3455ec914e9",
"build_id": "339",
"bytes_expected": 486608,
"bytes_received": 486608,
"bytes_usage": 1097155,
"client_agent": null,
"client_ip": null,
"client_referer": null,
"companion_url": "https://api2-morven.transloadit.com/companion/",
"executing_jobs": [],
"execution_duration": 5.281,
"execution_start": "2020/01/09 12:02:08 GMT",
"expected_tus_uploads": 1,
"fields": {},
"finished_tus_uploads": 1,
"has_dupe_jobs": false,
"instance": "morven.transloadit.com",
"is_infinite": false,
"jobs_queue_duration": 0.01,
"last_job_completed": "2020/01/09 12:02:14 GMT",
"merged_params": "{\"steps\":{\":original\":{\"robot\":\"/upload/handle\"},\"faces_detected\":{\"use\":\":original\",\"robot\":\"/image/facedetect\",\"crop\":true,\"faces\":\"max-confidence\",\"format\":\"preserve\",\"crop_padding\":\"10%\"},\"exported\":{\"use\":[\"faces_detected\",\":original\"],\"robot\":\"/s3/store\",\"credentials\":\"demo_s3_credentials\"}},\"auth\":{\"key\":\"****\",\"expires\":\"2020-01-10T12:02:05.826Z\"}}",
"notify_duration": null,
"notify_response_code": null,
"notify_start": null,
"notify_status": null,
"notify_url": null,
"params": "{\"steps\":{\":original\":{\"robot\":\"/upload/handle\"},\"faces_detected\":{\"use\":\":original\",\"robot\":\"/image/facedetect\",\"crop\":true,\"faces\":\"max-confidence\",\"format\":\"preserve\",\"crop_padding\":\"10%\"},\"exported\":{\"use\":[\"faces_detected\",\":original\"],\"robot\":\"/s3/store\",\"credentials\":\"demo_s3_credentials\"}},\"auth\":{\"key\":\"****\",\"expires\":\"2020-01-10T12:02:05.826Z\"}}",
"parent_assembly_status": null,
"parent_id": null,
"queue_duration": 0.184,
"running_jobs": [],
"start_date": "2020/01/09 12:02:06 GMT",
"started_jobs": [
":original:::original",
"faces_detected:::original",
"exported:::original",
"exported::faces_detected"
],
"started_tus_uploads": 1,
"template": null,
"template_id": null,
"transloadit_client": "node-sdk:2.0.8",
"tus_url": "https://api2-morven.transloadit.com/resumable/files/",
"upload_duration": 2.814,
"upload_meta_data_extracted": true,
"uppyserver_url": "https://api2-morven.transloadit.com/companion/",
"update_stream_url": "https://api2-morven.transloadit.com/ws20074?assembly=7828446e5acd4aa996dce3455ec914e9",
"websocket_url": "https://api2-morven.transloadit.com/ws20074",
"uploads": [
{
"id": "a30bd0776e7f4ac3817b056d102e8219",
"basename": "joe-gardner-149699",
"ext": "jpg",
"field": "file",
"from_batch_import": false,
"is_tus_file": true,
"md5hash": "fb205cb04b6998fe7ba364f70227cfa1",
"mime": "image/jpeg",
"name": "joe-gardner-149699.jpg",
"original_basename": "joe-gardner-149699",
"original_id": "a30bd0776e7f4ac3817b056d102e8219",
"original_md5hash": "fb205cb04b6998fe7ba364f70227cfa1",
"original_name": "joe-gardner-149699.jpg",
"original_path": "/",
"size": 485784,
"ssl_url": "https://s3.amazonaws.com/demos.transloadit.com/a3/0bd0776e7f4ac3817b056d102e8219/joe-gardner-149699.jpg",
"tus_upload_url": "https://api2-morven.transloadit.com/resumable/files/UPLOAD_ID+CAPABILITY_TOKEN",
"type": "image",
"url": "http://demos.transloadit.com.s3.amazonaws.com/a3/0bd0776e7f4ac3817b056d102e8219/joe-gardner-149699.jpg",
"meta": {
"aspect_ratio": "1.500",
"average_color": "#b09d96",
"colorspace": "RGB",
"date_file_modified": "2020/01/09 12:02:08 GMT",
"frame_count": 1,
"has_clipping_path": false,
"has_transparency": false,
"height": 1667,
"width": 2500
}
}
],
"results": {
":original": [
{
"id": "a30bd0776e7f4ac3817b056d102e8219",
"basename": "joe-gardner-149699",
"cost": 97157,
"execTime": 0.81,
"ext": "jpg",
"field": "file",
"from_batch_import": false,
"is_tus_file": false,
"md5hash": "fb205cb04b6998fe7ba364f70227cfa1",
"mime": "image/jpeg",
"name": "joe-gardner-149699.jpg",
"original_basename": "joe-gardner-149699",
"original_id": "a30bd0776e7f4ac3817b056d102e8219",
"original_md5hash": "fb205cb04b6998fe7ba364f70227cfa1",
"original_name": "joe-gardner-149699.jpg",
"original_path": "/",
"queue": "live",
"queueTime": 0.01,
"size": 485784,
"ssl_url": "https://s3.amazonaws.com/demos.transloadit.com/a3/0bd0776e7f4ac3817b056d102e8219/joe-gardner-149699.jpg",
"tus_upload_url": null,
"type": "image",
"url": "http://demos.transloadit.com.s3.amazonaws.com/a3/0bd0776e7f4ac3817b056d102e8219/joe-gardner-149699.jpg",
"meta": {
"aspect_ratio": "1.500",
"average_color": "#b09d96",
"colorspace": "RGB",
"date_file_modified": "2020/01/09 12:02:08 GMT",
"frame_count": 1,
"has_clipping_path": false,
"has_transparency": false,
"height": 1667,
"width": 2500
}
}
],
"faces_detected": [
{
"id": "b8d12f6c517541ca86bf50c537cedb27",
"basename": "joe-gardner-149699",
"cost": 627606,
"execTime": 0.83,
"ext": "jpg",
"field": "file",
"from_batch_import": false,
"is_tus_file": false,
"md5hash": "2a5cd917f4281b9438956e489c63dfd2",
"mime": "image/jpeg",
"name": "joe-gardner-149699.jpg",
"original_basename": "joe-gardner-149699",
"original_id": "a30bd0776e7f4ac3817b056d102e8219",
"original_md5hash": "fb205cb04b6998fe7ba364f70227cfa1",
"original_name": "joe-gardner-149699.jpg",
"original_path": "/",
"queue": "live",
"queueTime": 0,
"size": 141822,
"ssl_url": "https://s3.amazonaws.com/demos.transloadit.com/b8/d12f6c517541ca86bf50c537cedb27/joe-gardner-149699.jpg",
"tus_upload_url": null,
"type": "image",
"url": "http://demos.transloadit.com.s3.amazonaws.com/b8/d12f6c517541ca86bf50c537cedb27/joe-gardner-149699.jpg",
"meta": {
"aspect_ratio": "0.739",
"average_color": "#8d654d",
"colorspace": "RGB",
"date_file_created": "2020/01/09 12:02:09 GMT",
"date_file_modified": "2020/01/09 12:02:12 GMT",
"faces": [
{
"confidence": 99.99,
"height": 840,
"width": 621,
"x1": 981,
"x2": 1550,
"y1": 121,
"y2": 891
}
],
"frame_count": 1,
"has_clipping_path": false,
"has_transparency": false,
"height": 840,
"width": 621
}
}
]
}
}
Erläuterung der Felder
ok-
Gibt einen Lebenszyklusstatus ohne Fehler an, einschließlich der Zustände für Upload, Ausführung, Abbruch und Stornierung. Eine erfolgreiche Verarbeitung wird durch
ASSEMBLY_COMPLETEDangezeigt. Wenn bei der Assembly ein Fehler aufgetreten ist, wird anstelle dieses Schlüssels der unten beschriebene Schlüsselerrorverwendet. error-
Gibt einen Fehlerstatus an. Dieser Schlüssel ist nur vorhanden, wenn die Assembly fehlgeschlagen ist. Neue Fehlercodes können hinzukommen. Behandeln Sie nicht erkannte Codes als Fehler und bewahren Sie ihre Werte für die programmgesteuerte Prüfung auf.
message-
Eine menschenlesbare Meldung, die den Zustand dieser Assembly erläutert. Sie ist nicht immer vorhanden.
assembly_id-
Die eindeutige ID dieser Assembly. Sie können sie beim Erstellen einer Assembly in einer Datenbank speichern und zur Zuordnung eingehender Notifications verwenden.
assembly_url-
Die eindeutige URL, mit der der aktuelle Status dieser Assembly abgefragt wird.
assembly_ssl_url-
Die eindeutige URL, mit der der aktuelle Status dieser Assembly abgefragt wird, jedoch für die Verwendung über SSL/HTTPS ausgelegt. Alle API-Anfragen, die an
assembly_urlgesendet werden, können auch anassembly_ssl_urlgesendet werden. companion_url-
Die URL des Companion-Servers, mit dem diese Assembly möglicherweise kommuniziert.
websocket_url-
Die URL eines WebSocket-Servers (verwendet Socket.IO), von dem Sie Statusaktualisierungen zu dieser Assembly in Echtzeit erhalten können.
update_stream_url-
Die URL eines Server-Sent-Events-Streams, von dem Sie Statusaktualisierungen zu dieser Assembly in Echtzeit erhalten können.
tus_url-
Die URL des tus-Servers, den diese Assembly für fortsetzbare Uploads verwendet.
bytes_received-
Die Anzahl der Bytes, die bisher in diese Assembly hochgeladen wurden. Dieser Wert wird vor allem von Clients verwendet, um den Upload-Fortschritt anzuzeigen.
bytes_expected-
Die Anzahl der Bytes, die diese Assembly als Upload erwartet.
bytes_usage-
Die Gesamtzahl der Bytes, die diese Assembly verarbeitet hat und die in Ihre nutzungsbasierte Abrechnung einfließen. Die Summe der
bytes_usage-Werte aller Ihrer Assemblies entspricht Ihrer gesamten monatlichen Nutzung. client_agent-
Der User-Agent des Uploaders wird nicht offengelegt; dieses veraltete Feld ist immer
null. client_ip-
Die IP-Adresse des Uploaders wird nicht offengelegt; dieses veraltete Feld ist immer
null. client_referer-
Die Referrer-URL des Uploaders wird nicht offengelegt; dieses veraltete Feld ist immer
null. start_date-
Datum und Uhrzeit des Upload-Beginns für diese Assembly.
upload_duration-
Die vom Uploader zum Hochladen der Dateien benötigte Zeit in Sekunden.
execution_duration-
Die von Transloadit zur Ausführung dieser Assembly benötigte Zeit in Sekunden.
fields-
Eine Schlüssel/Wert-Zuordnung zusätzlicher Formularfelder für Integrationen, die keine
<form>-Kapselung verwenden können, wie etwa Uppy. uploads-
Ein Array mit Dateien, die für diese Assembly hochgeladen wurden. Weitere Informationen finden Sie in der Dokumentation zu Metadaten.
results-
Die Ergebnisdateien, die Transloadit bisher erzeugt hat. Jeder Schlüssel ist der Name des Steps, der eine Datei erzeugt hat. Robots zur Speicherung erzeugen keine Dateien, daher werden ihre Step-Namen weggelassen. Wenn ein
errorauftritt, kann dieses Objekt Teilergebnisse enthalten.
Benutzerdefinierte Dateimetadaten
Dateiobjekte in uploads und results können ein user_meta-Objekt mit benutzerdefinierten JSON-Werten enthalten,
einschließlich verschachtelter Objekte und Arrays. Behandeln Sie es beim Lesen von Antworten als optional; es kann leer sein ({}).
Die Zuordnung enthält Werte aus tus-Uploads, aus Instructions von Steps und aus Metadaten, die der Robot geerbt hat.
Werte, die der aktuelle Step setzt, ersetzen übereinstimmende Schlüssel auf oberster Ebene. Dies ist getrennt von den erkannten
Dateimetadaten in meta und den Anfragewerten auf Assembly-Ebene in fields.
Beispielsweise kann eine Datei "user_meta": { "stage": "resized", "approved": false } enthalten. Nachgelagerte
Steps lesen ${file.user_meta.stage} und ${file.user_meta.approved}. Informationen zum
Auswertungszeitpunkt, zu den Vererbungsregeln und zu einem vollständigen Workflow finden Sie unter Benutzerdefinierte Metadaten.