Accès au compte et au document
Téléchargez une pièce jointe existante d’un projet de portabilité appartenant à votre compte API. Utilisez un compte API activé via HTTPS depuis une adresse IP autorisée. Le projet ne doit pas être supprimé. La recherche d’un identifiant de document s’effectue au sein de ce projet ; cet identifiant n’est pas un lien de téléchargement public global.
Identifier le document
Consultez la réponse contenant les détails du projet et utilisez une entrée de sa liste uploads. Chaque entrée comprend l’identifiant numérique id, le nom de fichier d’origine, l’extension enregistrée et l’URL relative download_url. Utilisez l’identifiant du projet uniqueid et cet identifiant de téléversement, et non l’identifiant numérique de la ligne du projet ni celui d’une ligne de numéro de téléphone.
Résolvez toute URL relative renvoyée uniquement à partir de l’hôte API de confiance que vous avez configuré. Le téléchargement exige la même authentification du compte ; les métadonnées du document ne donnent pas accès au fichier sans authentification.
Envoyer la requête et enregistrer la réponse
Définissez PROJECT_ID et DOCUMENT_ID avec les valeurs du projet de votre compte. Encodez l’identifiant du projet pour son utilisation dans une URL. Cet exemple enregistre séparément les octets et les en-têtes de réponse, avec un nom de fichier de sortie local fixe plutôt qu’en se fiant au nom de la pièce jointe.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--dump-header document-headers.txt \
--output porting-document.bin \
"https://api.multitel.net/v3/lnp/project/$PROJECT_ID/document/$DOCUMENT_ID"La requête utilise GET sans corps. Elle lit une seule pièce jointe complète, sans pagination propre à ce point de terminaison, sans enveloppe JSON et sans contrat documenté de téléchargement par plages.
Réponse binaire et en-têtes
En cas de succès, le corps contient les octets enregistrés de la pièce jointe après l’étape de décodage de l’ancien stockage, et non du base64 ni un objet de réponse JSON. La méthode envoie un en-tête Content-Disposition de pièce jointe avec le nom de fichier enregistré, dont les guillemets doubles sont retirés. Cet en-tête ne garantit ni un encodage conforme aux normes ni un chemin de fichier local sûr ; choisissez vous-même le nom du fichier de destination.
| Extension enregistrée | Content-Type |
|---|---|
| application/pdf | |
| png | image/png |
| jpg, jpeg | image/jpeg |
| doc | application/msword |
| Autres valeurs | application/octet-stream |
La comparaison des extensions ne tient pas compte de la casse. Le type MIME est choisi d’après l’extension enregistrée, sans examen du contenu ni garantie de validité du document.
Vérifier le fichier téléchargé
- Examinez à la fois le statut HTTP et les en-têtes de réponse. Les erreurs d’authentification ou de recherche peuvent renvoyer une réponse au format JSON de l’API à la place d’un fichier. Ne considérez pas tout corps non vide ou tout fichier de sortie enregistré comme la preuve d’un téléchargement PDF réussi.
- Si le corps contient une erreur JSON, examinez
status.codeetstatus.msg. Conservez les sorties d’erreur séparément du document attendu. - Vérifiez que le fichier obtenu n’est pas vide et qu’il s’ouvre dans le format attendu. Si vous conservez l’original, comparez sa somme de contrôle à celle de la copie avant de vous fier à cette dernière.
- Si le résultat est vide, invalide ou différent de l’original, arrêtez-vous et demandez à l’assistance de vérifier la pièce jointe enregistrée. Répéter les téléchargements ne répare pas le stockage.
Compatibilité avec l’ancien stockage
Le chemin de téléversement actuel de l’API et les composants d’écriture des téléversements du portail et des anciens systèmes qui ont été examinés enregistrent les octets des documents avec échappement. Ce téléchargement annule cet échappement. Les tests hors ligne du gestionnaire réel préservent toutes les valeurs d’octets et les barres obliques inverses littérales pour ce format de stockage.
Cela ne constitue pas une garantie pour tous les enregistrements historiques ou importés depuis une source externe. Le gestionnaire décode toujours le bloc binaire enregistré et ne détecte pas si un enregistrement a été importé sans l’échappement attendu. Il ne se rabat pas non plus sur un chemin de fichier lorsqu’un enregistrement ne contient aucun bloc binaire enregistré. Ces enregistrements peuvent produire des octets altérés ou un résultat vide. Vérifiez le résultat et demandez à l’assistance d’examiner la pièce jointe concernée plutôt que de modifier un document client ou de supposer que ses métadonnées prouvent la disponibilité du fichier.
Le portail actuel utilise d’abord cette route de l’API et dispose de mécanismes locaux de repli supplémentaires. Un téléchargement réussi depuis le portail ne prouve pas que tous les anciens enregistrements peuvent être téléchargés directement via cette API.
Erreurs et effets
Un projet absent, supprimé ou n’appartenant pas au compte renvoie le code API 404 avec un message indiquant que le projet est introuvable. Un téléversement absent au sein d’un projet appartenant au compte renvoie le code API 404 avec un message indiquant que le document est introuvable. Lisez les corps des réponses d’erreur de l’API ainsi que le statut HTTP. Ce gestionnaire ne fournit pas de réponse fiable et spécifique signalant une absence pour un enregistrement existant dont les octets enregistrés sont inutilisables ou absents.
Le point de terminaison examiné lit une seule pièce jointe. Il ne téléverse, ne modifie ni ne supprime aucun document, ne soumet aucune demande de portabilité et ne débite pas le compte. Les pièces jointes de portabilité peuvent contenir des informations d’identité, de facturation ou d’autorisation : limitez leur utilisation aux processus autorisés du compte et ne les incluez pas dans les journaux publics, les données d’analyse ou les captures d’écran de documentation.