Neuen tus-Upload erstellen
Erstellt aus validierten Assembly-Metadaten eine Ressource für einen fortsetzbaren Upload.
{TUS_URL}Verwenden Sie die Capability-URL tus_url aus der validierten Assembly-Antwort als Ziel der Anfrage. Dabei werden keine implizit verfügbaren Anmeldedaten des API2-Hosts verwendet.
Für einen normalen Upload mit festgelegter Größe erstellen Sie zunächst eine Assembly und setzen Sie dabei
num_expected_upload_files auf die Anzahl der Dateien. Kopieren Sie deren assembly_ssl_url und tus_url
in das folgende Beispiel. Ersetzen Sie die zurückgegebene tus_url nicht durch den allgemeinen API-Hostnamen.
Dieses Beispiel reserviert vier Bytes und lädt dann den Text file hoch. Für eine echte Datei verwenden Sie deren Länge
in Bytes und senden Sie ihre Bytes in der PATCH-Anfrage.
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=="
Eine erfolgreiche 201-Antwort liefert die Upload-URL in ihrem location-Header zurück.
Kopieren Sie diese URL in das folgende Beispiel. Bewahren Sie sie auf, damit eine unterbrochene Übertragung ab dem vom Server gemeldeten Offset fortgesetzt werden kann.
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'
Informationen zur Wiederaufnahme und zum Abschluss finden Sie in der Anleitung zu fortsetzbaren Uploads. Nachträglich festgelegte Längen, Verkettung und die genaue Syntax der Header werden weiter unten behandelt.
Für parallele Uploads erstellen Sie Teilressourcen, laden deren Bytes hoch und erstellen dann eine finale
Ressource, die diese miteinander verkettet. Nur die finale Datei wird zu einer Eingabe für eine Assembly und durchläuft
Ihr Template. Setzen Sie num_expected_upload_files auf die Anzahl der finalen Dateien, nicht
auf die Anzahl der Teilressourcen. Geben Sie bei jeder Anfrage zur Erstellung einer Teilressource oder einer finalen Ressource die Metadaten assembly_url, filename und fieldname
an. Wenn Sie tus-js-client mit parallelUploads verwenden, geben Sie diese Felder auch
in metadataForPartialUploads an.
Lassen Sie Upload-Concat bei einem normalen Upload weg. Setzen Sie den Wert bei jeder Anfrage
zur Erstellung einer Teilressource auf partial. Nachdem alle Teil-Uploads abgeschlossen sind, erstellen Sie die finale Ressource mit:
Upload-Concat: final;<PARTIAL_UPLOAD_URL_1> <PARTIAL_UPLOAD_URL_2>
Ersetzen Sie die Platzhalter durch die vollständigen Location-URLs, die für die Teil-Uploads zurückgegeben wurden.
Belassen Sie das Semikolon unmittelbar nach final; trennen Sie die URLs durch Leerzeichen. Ihre Reihenfolge
bestimmt die Byte-Reihenfolge in der finalen Datei.
Authentifizierung
Senden Sie assembly_url im Header Upload-Metadata mit dem Base64-kodierten Wert von assembly_ssl_url aus derselben validierten Assembly-Antwort.
Request-Header
Vollständiges JSON Schema
Normalisierte kleingeschriebene Header zum Erstellen eines tus-Uploads mit fester oder aufgeschobener Länge sowie eines partiellen oder finalen tus-Uploads.
| Feld | Typ und Beschreibung |
|---|---|
tus-resumableerforderlich | string (immer: "1.0.0")Die ausgehandelte tus-Version. |
upload-metadataerforderlich | stringDurch Kommas getrennte ASCII-Metadatenschlüssel mit optionalen Standard-Base64-Werten. Erfolgreiche Transloadit-Uploads enthalten filename und fieldname; Authentifizierungsmetadaten werden vom Transport zusammengestellt. Validierungsmuster (regulärer Ausdruck)^[\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}=)?)?)*$ |
Eines der folgenden Schemas kann gelten:
erforderliche Eigenschaften: upload-length
Auch Felder, die nicht für dieses Objekt aufgeführt sind, werden akzeptiert.
| Feld | Typ und Beschreibung |
|---|---|
content-type | string (immer: "application/offset+octet-stream") |
upload-concat | string (immer: "partial") |
upload-defer-length | nieDieser Wert ist unzulässig. |
upload-lengtherforderlich | stringEine kanonische vorzeichenlose Byteanzahl zur Basis 10 im vorzeichenbehafteten 64-Bit-Bereich, ohne führende Nullen oder Pluszeichen. Validierungsmuster (regulärer Ausdruck)^(?: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"
Auch Felder, die nicht für dieses Objekt aufgeführt sind, werden akzeptiert.
| Feld | Typ und Beschreibung |
|---|---|
content-type | string (immer: "application/offset+octet-stream") |
upload-concat | string (immer: "partial") |
upload-defer-lengtherforderlich | string (immer: "1") |
upload-length | nieDieser Wert ist unzulässig. |
erforderliche Eigenschaften: upload-concat
Auch Felder, die nicht für dieses Objekt aufgeführt sind, werden akzeptiert.
| Feld | Typ und Beschreibung |
|---|---|
content-type | nieDieser Wert ist unzulässig. |
upload-concaterforderlich | string (maximale Länge: 8192)Validierungsmuster (regulärer Ausdruck)^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 | nieDieser Wert ist unzulässig. |
upload-length | nieDieser Wert ist unzulässig. |
Request-Body
Binärer Request-Body. application/offset+octet-stream Der Body ist optional.
Antwort
HTTP 201
Kein Response-Body.
Response-Header
Vollständiges JSON Schema
Auch Felder, die nicht für dieses Objekt aufgeführt sind, werden akzeptiert.
| Feld | Typ und Beschreibung |
|---|---|
locationerforderlich | string (minimale Länge: 1)Die URL der neuen Upload-Ressource. Clients müssen sie als zurückgegebene Capability validieren. |
tus-resumableerforderlich | string (immer: "1.0.0") |
upload-offset | stringEine kanonische vorzeichenlose Byteanzahl zur Basis 10 im vorzeichenbehafteten 64-Bit-Bereich, ohne führende Nullen oder Pluszeichen. Validierungsmuster (regulärer Ausdruck)^(?: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-optionserforderlich | string (immer: "nosniff") |
Fehlerantwort
Antworttext. text/plain; charset=utf-8
Schema des Response-Bodys
Vollständiges JSON Schema
stringEines der folgenden Schemas kann gelten:
Variante 1: string
stringValidierungsmuster (regulärer Ausdruck)
^ERR_[A-Z0-9_]+: [^\r\n]*\n$Variante 2: string
stringUnverändertes text/plain-Fehlerformat eines Hooks mit wörtlich übernommener Nutzlast; JSON-ähnlich, aber nicht zwingend gültiges JSON.
Validierungsmuster (regulärer Ausdruck)
^\{"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])*"\}$Response-Header
Vollständiges JSON Schema
Auch Felder, die nicht für dieses Objekt aufgeführt sind, werden akzeptiert.
| Feld | Typ und Beschreibung |
|---|---|
content-typeerforderlich | string (immer: "text/plain; charset=utf-8") |
tus-resumableerforderlich | string (immer: "1.0.0") |
x-content-type-optionserforderlich | string (immer: "nosniff") |