Accesul la cont și la document
Descărcați un atașament existent dintr-un proiect de portare care aparține contului dumneavoastră API. Folosiți un cont API activat, prin HTTPS, de la o adresă IP permisă. Proiectul nu trebuie să fie șters. Identificatorul documentului este căutat în cadrul acelui proiect; nu reprezintă un link public global de descărcare.
Identificați documentul
Citiți răspunsul cu detaliile proiectului și folosiți o intrare din lista sa uploads. Intrarea include valoarea numerică id, numele original al fișierului, extensia stocată și adresa relativă download_url. Folosiți valoarea proiectului pentru uniqueid și identificatorul acelei încărcări, nu identificatorul numeric al rândului proiectului sau identificatorul unui rând de număr de telefon.
Rezolvați o adresă URL relativă returnată numai în raport cu gazda API de încredere pe care ați configurat-o. Descărcarea necesită aceeași autentificare a contului; metadatele documentului nu acordă acces fără autentificare.
Trimiteți cererea și salvați răspunsul
Setați PROJECT_ID și DOCUMENT_ID la valorile din proiectul contului dumneavoastră. Codificați identificatorul proiectului pentru utilizarea într-o adresă URL. Acest exemplu salvează separat octeții și antetele răspunsului, folosind un nume local fix pentru fișierul rezultat, în loc să se bazeze pe numele fișierului atașat.
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"Cererea folosește GET și nu are corp. Citește un singur atașament complet, fără paginare specifică acestui punct de acces, fără un înveliș JSON și fără un contract documentat pentru descărcarea pe intervale.
Răspunsul binar și antetele
În caz de succes, corpul conține octeții stocați ai atașamentului după etapa de decodificare a stocării vechi, nu base64 și nici un obiect de răspuns JSON. Metoda trimite un antet Content-Disposition pentru atașament, folosind numele stocat al fișierului, din care sunt eliminate ghilimelele duble. Nu se garantează că antetul este codificat conform standardelor sau că reprezintă o cale locală sigură; alegeți propriul nume pentru fișierul de destinație.
| Extensia stocată | Content-Type |
|---|---|
| application/pdf | |
| png | image/png |
| jpg, jpeg | image/jpeg |
| doc | application/msword |
| Alte valori | application/octet-stream |
Compararea extensiilor nu face distincție între litere mari și mici. Tipul MIME este ales pe baza extensiei stocate, nu prin inspectarea conținutului, și nu garantează că documentul este valid.
Verificați fișierul descărcat
- Examinați atât starea HTTP, cât și antetele răspunsului. Erorile de autentificare sau de căutare pot returna un răspuns JSON al API în locul unui fișier. Nu considerați orice corp nevid sau fișier rezultat salvat drept o descărcare PDF reușită.
- Dacă corpul conține o eroare JSON, examinați
status.codeșistatus.msg. Păstrați separat datele de ieșire ale erorii și documentul așteptat. - Verificați că fișierul rezultat nu este gol și se deschide ca fișier de tipul așteptat. Dacă păstrați originalul, comparați suma de control a acestuia cu cea a copiei înainte de a vă baza pe copie.
- Dacă rezultatul este gol, nevalid sau diferă de original, opriți-vă și cereți echipei de asistență să verifice atașamentul stocat. Descărcările repetate nu repară stocarea.
Compatibilitatea cu stocarea veche
Fluxul actual de încărcare prin API și componentele de scriere examinate pentru încărcările din portal și din sistemul vechi stochează octeții documentelor folosind secvențe de escapare. Această descărcare inversează escaparea. Testele offline ale funcției de tratare efective păstrează toate valorile octeților și barele oblice inverse literale pentru acel format de stocare.
Aceasta nu este o promisiune privind fiecare înregistrare istorică sau importată din exterior. Funcția de tratare decodifică întotdeauna blocul de date binare stocat și nu detectează dacă o înregistrare a fost importată fără escaparea așteptată. De asemenea, nu recurge la o cale de fișier atunci când o înregistrare nu are un bloc de date binare stocat. Astfel de înregistrări pot produce octeți modificați sau un conținut gol. Verificați rezultatul și cereți echipei de asistență să investigheze atașamentul afectat, în loc să modificați un document al clientului sau să presupuneți că metadatele sale dovedesc disponibilitatea fișierului.
Portalul actual folosește mai întâi această rută API și dispune de mecanisme locale suplimentare de rezervă. O descărcare reușită prin portal nu dovedește că fiecare înregistrare veche poate fi descărcată direct prin această API.
Erori și efecte
Un proiect inexistent, șters sau care nu aparține contului returnează codul API 404 cu un mesaj care indică faptul că proiectul nu a fost găsit. O încărcare inexistentă într-un proiect care aparține contului returnează codul API 404 cu un mesaj care indică faptul că documentul nu a fost găsit. Citiți atât corpurile erorilor API, cât și starea HTTP. Pentru o înregistrare care există, dar nu are octeți stocați utilizabili, această funcție de tratare nu oferă un răspuns dedicat și fiabil care să indice că nu a fost găsită.
Punctul de acces examinat citește un singur atașament. Nu încarcă, nu modifică și nu elimină un document, nu trimite o cerere de portare și nu debitează contul. Atașamentele pentru portare pot conține informații de identitate, de facturare sau de autorizare: păstrați-le în cadrul fluxurilor de lucru autorizate ale contului și nu le includeți în jurnale publice, în sisteme de analiză sau în capturi de ecran din documentație.