Respuesta de Assembly Status
Transloadit utiliza un único formato de respuesta para crear y consultar Assemblies, adjuntar respuestas a formularios de subida y enviar Notifications.
El siguiente es un ejemplo completo de una respuesta de Transloadit. Como los archivos se procesan en paralelo,
el orden de results no necesariamente coincide con el de uploads. También puede
haber varios resultados para una sola subida. Para relacionar los resultados con las subidas, puedes usar el
campo original_id, que está presente en ambos elementos.
Ejemplo de respuesta
{
"assembly_id": "7828446e5acd4aa996dce3455ec914e9",
"ok": "ASSEMBLY_COMPLETED",
"message": "The Assembly was successfully completed.",
"warnings": [],
"account_id": "4ce4fb3d9d1842b6ba5d6f3ccee4b066",
"assembly_ssl_url": "https://api2-jenks.transloadit.com/assemblies/7828446e5acd4aa996dce3455ec914e9",
"assembly_url": "http://api2.jenks.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-jenks.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": "jenks.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-jenks.transloadit.com/resumable/files/",
"upload_duration": 2.814,
"upload_meta_data_extracted": true,
"uppyserver_url": "https://api2-jenks.transloadit.com/companion/",
"websocket_url": "https://api2-jenks.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-jenks.transloadit.com/resumable/files/f95ba7eebf22e0ebadcf9b09a3a91c65+DRCJv78IeFDneTwnYb3pagc8Bqg7IwlRAFpW8e3i.f4RSPIZXEeaxdheZiTBBvJ0pAyjxL3.U5TvUqWytvkObgz6Bh55biPZwLqzIK_mwRbjGl0UREMrju1zfy8.OgTg",
"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
}
}
]
}
}
Explicación de los campos
okIndica un estado correcto. Si la Assembly encontró un error, se utiliza la clave
errorque aparece a continuación en lugar de esta clave.errorIndica un estado de error. Esta clave solo está presente si la Assembly falló.
messageUn mensaje legible que explica el estado de esta Assembly. No siempre está presente.
assembly_idEl ID único de esta Assembly. Puedes almacenarlo en una base de datos cuando se crea una Assembly y usarlo para relacionar las Notifications entrantes.
assembly_urlLa URL única que se utiliza para consultar el estado actual de esta Assembly.
assembly_ssl_urlLa URL única que se utiliza para consultar el estado actual de esta Assembly, pero preparada para usarse mediante SSL/HTTPS. Todas las solicitudes a la API que se envían a
assembly_urltambién pueden enviarse aassembly_ssl_url.companion_urlLa URL del servidor Companion con el que esta Assembly puede comunicarse.
websocket_urlLa URL de un servidor Websocket (utiliza Socket.IO) desde el que puedes obtener actualizaciones en tiempo real sobre el estado de esta Assembly.
tus_urlLa URL del servidor tus que utiliza esta Assembly para las subidas reanudables.
bytes_receivedLa cantidad de bytes que se han subido hasta el momento a esta Assembly. Los clientes utilizan este valor principalmente para mostrar el progreso de la subida.
bytes_expectedLa cantidad de bytes que esta Assembly espera que se suban.
bytes_usageLa cantidad total de bytes procesados por esta Assembly que se contabilizan en tu factura de uso. La suma de
bytes_usagede todas tus Assemblies equivale a tu uso mensual total.client_agentEl agente de usuario (navegador) utilizado por quien realiza la subida.
client_ipLa dirección IP de quien realiza la subida.
client_refererLa URL de referencia de quien realiza la subida.
start_dateLa fecha y hora en que comenzó la subida para esta Assembly.
upload_durationEl tiempo que tardó quien realizó la subida en subir los archivos, en segundos.
execution_durationEl tiempo que tardó Transloadit en ejecutar esta Assembly, en segundos.
fieldsUn mapa de claves y valores de cualquier campo adicional presente en tu formulario, para integraciones que no pueden usar la encapsulación
<form>(como Uppy).uploadsUn arreglo de archivos subidos para esta Assembly. Para obtener más información, consulta la documentación de metadatos.
resultsLos archivos de resultados que Transloadit ha producido hasta el momento. Cada clave de este objeto es el nombre del Step que produjo un archivo específico. Como los Robots de almacenamiento no producen archivos, los nombres de sus Steps no se incluyen aquí. Si se produce un
error, puede contener resultados parciales.