Crear una subida tus
Crea un recurso de subida reanudable a partir de metadatos validados de una Assembly.
{TUS_URL}Usa la URL de capacidad tus_url de la respuesta validada de la Assembly como destino de la solicitud. No utiliza las credenciales implícitas del host de API2.
Para una carga normal de tamaño fijo, primero crea una Assembly con
num_expected_upload_files establecido en el número de archivos. Copia sus valores de assembly_ssl_url y tus_url
en el ejemplo siguiente. No sustituyas el tus_url devuelto por el nombre de host general de la API.
Este ejemplo reserva cuatro bytes y luego carga el texto file. Para un archivo real, usa su longitud
en bytes y envía sus bytes en la solicitud PATCH.
assembly_ssl_url='<assembly_ssl_url from the creation response>'
tus_url='<tus_url from the creation response>'
assembly_metadata=$(printf %s "$assembly_ssl_url" | base64 | tr -d "\n")
curl --fail-with-body -sS --include --request POST \
--url "$tus_url" \
--header 'tus-resumable: 1.0.0' \
--header 'upload-length: 4' \
--header "upload-metadata: assembly_url $assembly_metadata,filename ZmlsZS50eHQ=,fieldname ZmlsZQ=="
Una respuesta 201 satisfactoria devuelve la URL de carga en su cabecera location.
Copia esa URL a continuación. Consérvala para poder reanudar una transferencia interrumpida desde el desplazamiento indicado por el servidor.
upload_url='<Location response header>'
curl --fail-with-body -sS --request PATCH \
--url "$upload_url" \
--header 'tus-resumable: 1.0.0' \
--header 'upload-offset: 0' \
--header 'content-type: application/offset+octet-stream' \
--data-binary 'file'
Consulta la guía de cargas reanudables para obtener información sobre la recuperación y la finalización. Las longitudes diferidas, la concatenación y las reglas sintácticas exactas de las cabeceras se describen más abajo.
Para las cargas paralelas, crea recursos parciales, carga sus bytes y luego crea un recurso
final que los concatene. Solo el archivo final se convierte en una entrada de la Assembly y se procesa
mediante tu Template. Establece num_expected_upload_files en el número de archivos finales, no
en el número de recursos parciales. Incluye los metadatos assembly_url, filename y fieldname
en cada solicitud de creación de un recurso parcial o final. Con tus-js-client, proporciona también estos campos
en metadataForPartialUploads cuando uses parallelUploads.
Omite Upload-Concat en una carga normal. Establécelo en partial en cada solicitud
de creación de un recurso parcial. Una vez que terminen todas las cargas parciales, crea el recurso final con:
Upload-Concat: final;<PARTIAL_UPLOAD_URL_1> <PARTIAL_UPLOAD_URL_2>
Sustituye los marcadores de posición por las URL completas de Location devueltas para las cargas parciales.
Mantén el punto y coma inmediatamente después de final; separa las URL con espacios. Su orden
determina el orden de los bytes en el archivo final.
Autenticación
Envía assembly_url en el encabezado Upload-Metadata con el valor de assembly_ssl_url codificado en Base64 obtenido de la misma respuesta validada de la Assembly.
Headers de la solicitud
JSON Schema completo
Encabezados normalizados en minúsculas para crear una subida tus de longitud fija o diferida, parcial o final.
| Campo | Tipo y descripción |
|---|---|
tus-resumableobligatorio | string (siempre: "1.0.0")La versión de tus negociada. |
upload-metadataobligatorio | stringClaves de metadatos ASCII separadas por comas con valores Base64 estándar opcionales. Las subidas correctas de Transloadit incluyen filename y fieldname; el transporte compone los metadatos de autenticación. Patrón de validación (expresión regular)^[\x21-\x2b\x2d-\x7e]+(?: (?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?)?(?:,[\x21-\x2b\x2d-\x7e]+(?: (?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?)?)*$ |
Puede aplicarse cualquiera de los esquemas siguientes:
propiedades obligatorias: upload-length
Se aceptan campos adicionales a los enumerados para este objeto.
| Campo | Tipo y descripción |
|---|---|
content-type | string (siempre: "application/offset+octet-stream") |
upload-concat | string (siempre: "partial") |
upload-defer-length | nuncaEste valor está prohibido. |
upload-lengthobligatorio | stringUn recuento de bytes canónico, sin signo y en base 10, dentro del rango de 64 bits con signo, sin relleno de ceros ni signo más. Patrón de validación (expresión regular)^(?:0|[1-9][0-9]{0,17}|[1-8][0-9]{18}|9[0-1][0-9]{17}|92[0-1][0-9]{16}|922[0-2][0-9]{15}|9223[0-2][0-9]{14}|92233[0-6][0-9]{13}|922337[0-1][0-9]{12}|92233720[0-2][0-9]{10}|922337203[0-5][0-9]{9}|9223372036[0-7][0-9]{8}|92233720368[0-4][0-9]{7}|922337203685[0-3][0-9]{6}|9223372036854[0-6][0-9]{5}|92233720368547[0-6][0-9]{4}|922337203685477[0-4][0-9]{3}|9223372036854775[0-7][0-9]{2}|922337203685477580[0-6]|9223372036854775807)$ |
upload-defer-length: "1"
Se aceptan campos adicionales a los enumerados para este objeto.
| Campo | Tipo y descripción |
|---|---|
content-type | string (siempre: "application/offset+octet-stream") |
upload-concat | string (siempre: "partial") |
upload-defer-lengthobligatorio | string (siempre: "1") |
upload-length | nuncaEste valor está prohibido. |
propiedades obligatorias: upload-concat
Se aceptan campos adicionales a los enumerados para este objeto.
| Campo | Tipo y descripción |
|---|---|
content-type | nuncaEste valor está prohibido. |
upload-concatobligatorio | string (longitud máxima: 8192)Patrón de validación (expresión regular)^final;(?:https?:\/\/[^/\x09-\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+)?\/resumable\/files\/[^/\x09-\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+(?:\/[^/\x09-\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+)*(?: (?:https?:\/\/[^/\x09-\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+)?\/resumable\/files\/[^/\x09-\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+(?:\/[^/\x09-\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+)*)*$ |
upload-defer-length | nuncaEste valor está prohibido. |
upload-length | nuncaEste valor está prohibido. |
Cuerpo de la solicitud
Cuerpo binario de la solicitud. application/offset+octet-stream El cuerpo es opcional.
Respuesta
HTTP 201
Sin cuerpo de respuesta.
Headers de la respuesta
JSON Schema completo
Se aceptan campos adicionales a los enumerados para este objeto.
| Campo | Tipo y descripción |
|---|---|
locationobligatorio | string (longitud mínima: 1)La URL del nuevo recurso de subida. Los clientes deben validarla como una capability devuelta. |
tus-resumableobligatorio | string (siempre: "1.0.0") |
upload-offset | stringUn recuento de bytes canónico, sin signo y en base 10, dentro del rango de 64 bits con signo, sin relleno de ceros ni signo más. Patrón de validación (expresión regular)^(?:0|[1-9][0-9]{0,17}|[1-8][0-9]{18}|9[0-1][0-9]{17}|92[0-1][0-9]{16}|922[0-2][0-9]{15}|9223[0-2][0-9]{14}|92233[0-6][0-9]{13}|922337[0-1][0-9]{12}|92233720[0-2][0-9]{10}|922337203[0-5][0-9]{9}|9223372036[0-7][0-9]{8}|92233720368[0-4][0-9]{7}|922337203685[0-3][0-9]{6}|9223372036854[0-6][0-9]{5}|92233720368547[0-6][0-9]{4}|922337203685477[0-4][0-9]{3}|9223372036854775[0-7][0-9]{2}|922337203685477580[0-6]|9223372036854775807)$ |
x-content-type-optionsobligatorio | string (siempre: "nosniff") |
Respuesta de error
Cuerpo de respuesta de texto. text/plain; charset=utf-8
Esquema del cuerpo de la respuesta
JSON Schema completo
stringPuede aplicarse cualquiera de los esquemas siguientes:
Variante 1: string
stringPatrón de validación (expresión regular)
^ERR_[A-Z0-9_]+: [^\r\n]*\n$Variante 2: string
stringFormato de error text/plain sin procesar de un hook con un payload literal; tiene aspecto de JSON, pero no es necesariamente JSON válido.
Patrón de validación (expresión regular)
^\{"error":"(?:[\x09-\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]|[^\x09-\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff])*"\}$Headers de la respuesta
JSON Schema completo
Se aceptan campos adicionales a los enumerados para este objeto.
| Campo | Tipo y descripción |
|---|---|
content-typeobligatorio | string (siempre: "text/plain; charset=utf-8") |
tus-resumableobligatorio | string (siempre: "1.0.0") |
x-content-type-optionsobligatorio | string (siempre: "nosniff") |