Transmission de fichiers par URL
Les règles qu’un lien de fichier doit respecter, et les types de contenu acceptés par chaque entrée.
Il n’existe pas de point de terminaison de téléversement. Un champ de fichier prend un lien HTTPS public, que nous récupérons, vérifions et copions dans votre projet Morphic avant le démarrage de l’exécution. Votre CDN reste la source d’origine de votre propre contenu, et les images, vidéos, audio et documents utilisent tous le même contrat.
Chaque lien doit satisfaire à tout ce qui suit
| Exigence | Détail |
|---|---|
| HTTPS | simple http est refusé |
| Il sert le fichier | le corps de la réponse doit contenir les octets. Une page d’aperçu ou de partage — un visualiseur Drive, une page d’accueil Dropbox, tout habillage HTML — est refusée |
| Un nom d’hôte public | noms d’hôte uniquement. Une adresse IP, localhost, ou un nom qui se résout vers une adresse privée est refusé |
| Aucune information d’identification dans l’URL | https://utilisateur:motdepasse@… est refusé. Une chaîne de requête pré-signée convient, et n’est jamais écrite dans nos journaux |
| Un type de contenu répertorié | du Content-Type doit être l’un des url_content_types |
| Octets qui correspondent à | les premiers octets du fichier sont vérifiés par rapport au type sous lequel il a été servi, avant qu’il ne soit conservé. Un PNG servi comme PDF, une page HTML servie comme JSON, ou tout ZIP servi comme DOCX est refusé |
À l’intérieur de max_bytes | vérifié à partir de Content-Length d’abord, puis de nouveau appliqué pendant le flux des octets |
| Au plus 3 redirections | plus de trois sauts est refusé |
| Valide pour toute la récupération | un lien qui expire en cours de transfert fait échouer l’exécution |
| Non vide | un lien qui sert zéro octet est refusé |
| Livré rapidement | un hôte qui ne peut pas livrer le fichier entier en environ 40 secondes est refusé, et l’ensemble des liens d’une exécution dispose d’environ 90 secondes |
Un lien signé à durée de vie courte est la cause habituelle d’un fichier partiellement récupéré. Donnez-lui au moins quelques minutes de validité après le moment où vous démarrez l’exécution.
Types de contenu par type d’entrée
La liste exacte pour une entrée se trouve dans son url_content_types. Ce sont les types que chaque type d’entrée peut être configuré à accepter.
| Type d’entrée | Types de contenu |
|---|---|
image | image/png, image/jpeg, image/webp, image/gif, image/tiff, image/avif, image/heic |
vidéo | video/mp4, video/webm, video/quicktime, video/mpeg, video/x-matroska |
audio | audio/mpeg, audio/wav, audio/aac, audio/ogg, audio/mp4, audio/webm |
document | application/pdf, text/plain, text/markdown, text/csv, application/json, et DOCX |
Tout ce qui ne figure pas dans la liste d’une entrée est refusé. Il n’existe pas de type d’entrée « n’importe quel fichier », et une extension n’est jamais digne de confiance — ce qui compte, ce sont les octets.
Plafonds par exécution
Les liens et les octets sont plafonnés par exécution pour l’ensemble des entrées de fichier — voir Erreurs et limites.