Créer un téléversement tus
Crée une ressource de téléversement avec reprise à partir de métadonnées d’Assembly validées.
{TUS_URL}Utilisez l’URL de capacité tus_url issue de la réponse validée de l’Assembly comme destination de la requête. Elle n’utilise pas les informations d’authentification implicitement disponibles associées à l’hôte API2.
Pour un téléversement normal de taille fixe, commencez par créer une Assembly avec
num_expected_upload_files défini sur le nombre de fichiers. Copiez ses valeurs assembly_ssl_url et tus_url
dans l’exemple ci-dessous. Ne remplacez pas le tus_url renvoyé par le nom d’hôte général de l’API.
Cet exemple réserve quatre octets, puis téléverse le texte file. Pour un fichier réel, utilisez sa taille
en octets et envoyez ses octets dans la requête 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=="
Une réponse de succès 201 renvoie l’URL de téléversement dans son en-tête location.
Copiez cette URL ci-dessous. Conservez-la pour qu’un transfert interrompu puisse reprendre au décalage indiqué par le serveur.
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'
Consultez le guide des téléversements avec reprise pour la reprise et la finalisation. Les longueurs différées, la concaténation et la syntaxe exacte des en-têtes sont décrites ci-dessous.
Pour les téléversements parallèles, créez des ressources partielles, téléversez leurs octets, puis créez une ressource
finale qui les concatène. Seul le fichier final devient une entrée d’Assembly et est traité
par votre Template. Définissez num_expected_upload_files sur le nombre de fichiers finaux, et non
sur le nombre de ressources partielles. Incluez les métadonnées assembly_url, filename et fieldname
dans chaque requête de création de ressource partielle ou finale. Avec tus-js-client, fournissez également ces champs
dans metadataForPartialUploads lorsque vous utilisez parallelUploads.
N’incluez pas Upload-Concat pour un téléversement normal. Définissez-le sur partial dans chaque requête
de création de ressource partielle. Une fois tous les téléversements partiels terminés, créez la ressource finale avec :
Upload-Concat: final;<PARTIAL_UPLOAD_URL_1> <PARTIAL_UPLOAD_URL_2>
Remplacez les espaces réservés par les URL Location complètes renvoyées pour les téléversements partiels.
Conservez le point-virgule immédiatement après final ; séparez les URL par des espaces. Leur ordre
détermine l’ordre des octets dans le fichier final.
Authentification
Envoyez assembly_url dans l’en-tête Upload-Metadata avec la valeur de assembly_ssl_url encodée en Base64, provenant de la même réponse validée de l’Assembly.
En-têtes de requête
Schéma JSON complet
En-têtes normalisés en minuscules pour la création de téléversements tus à longueur fixe, à longueur différée, partiels ou finaux.
| Champ | Type et description |
|---|---|
tus-resumableobligatoire | string (toujours : "1.0.0")La version tus négociée. |
upload-metadataobligatoire | stringClés de métadonnées ASCII séparées par des virgules, avec des valeurs facultatives en Base64 standard. Les téléversements Transloadit réussis incluent filename et fieldname ; les métadonnées d’authentification sont composées par le transport. Motif de validation (expression régulière)^[\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}=)?)?)*$ |
N’importe lequel des schémas suivants peut s’appliquer :
propriétés requises : upload-length
Les champs autres que ceux répertoriés pour cet objet sont acceptés.
| Champ | Type et description |
|---|---|
content-type | string (toujours : "application/offset+octet-stream") |
upload-concat | string (toujours : "partial") |
upload-defer-length | jamaisCette valeur est interdite. |
upload-lengthobligatoire | stringUn nombre d’octets canonique et non signé en base 10, compris dans la plage des entiers signés sur 64 bits, sans zéros de remplissage ni signe plus. Motif de validation (expression régulière)^(?: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"
Les champs autres que ceux répertoriés pour cet objet sont acceptés.
| Champ | Type et description |
|---|---|
content-type | string (toujours : "application/offset+octet-stream") |
upload-concat | string (toujours : "partial") |
upload-defer-lengthobligatoire | string (toujours : "1") |
upload-length | jamaisCette valeur est interdite. |
propriétés requises : upload-concat
Les champs autres que ceux répertoriés pour cet objet sont acceptés.
| Champ | Type et description |
|---|---|
content-type | jamaisCette valeur est interdite. |
upload-concatobligatoire | string (longueur maximale : 8192)Motif de validation (expression régulière)^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 | jamaisCette valeur est interdite. |
upload-length | jamaisCette valeur est interdite. |
Corps de la requête
Corps de requête binaire. application/offset+octet-stream Le corps est facultatif.
Réponse
HTTP 201
Aucun corps de réponse.
En-têtes de réponse
Schéma JSON complet
Les champs autres que ceux répertoriés pour cet objet sont acceptés.
| Champ | Type et description |
|---|---|
locationobligatoire | string (longueur minimale : 1)L’URL de la nouvelle ressource de téléversement. Les clients doivent la valider en tant que capacité renvoyée. |
tus-resumableobligatoire | string (toujours : "1.0.0") |
upload-offset | stringUn nombre d’octets canonique et non signé en base 10, compris dans la plage des entiers signés sur 64 bits, sans zéros de remplissage ni signe plus. Motif de validation (expression régulière)^(?: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-optionsobligatoire | string (toujours : "nosniff") |
Réponse d’erreur
Corps de la réponse au format texte. text/plain; charset=utf-8
Schéma du corps de la réponse
Schéma JSON complet
stringN’importe lequel des schémas suivants peut s’appliquer :
Variante 1: string
stringMotif de validation (expression régulière)
^ERR_[A-Z0-9_]+: [^\r\n]*\n$Variante 2: string
stringMise en forme d’une erreur de hook en texte brut text/plain avec une charge utile reproduite à l’identique ; structure de type JSON, mais pas nécessairement du JSON valide.
Motif de validation (expression régulière)
^\{"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])*"\}$En-têtes de réponse
Schéma JSON complet
Les champs autres que ceux répertoriés pour cet objet sont acceptés.
| Champ | Type et description |
|---|---|
content-typeobligatoire | string (toujours : "text/plain; charset=utf-8") |
tus-resumableobligatoire | string (toujours : "1.0.0") |
x-content-type-optionsobligatoire | string (toujours : "nosniff") |