Πρόσβαση στον λογαριασμό και στα έγγραφα
Κατεβάστε ένα υπάρχον συνημμένο από έργο φορητότητας που ανήκει στον λογαριασμό API σας. Χρησιμοποιήστε έναν ενεργοποιημένο λογαριασμό API μέσω HTTPS από επιτρεπόμενη διεύθυνση IP. Το έργο δεν πρέπει να έχει διαγραφεί. Το αναγνωριστικό εγγράφου αναζητείται εντός αυτού του έργου· δεν αποτελεί καθολικό δημόσιο σύνδεσμο λήψης.
Εντοπίστε το έγγραφο
Διαβάστε την απόκριση με τις λεπτομέρειες του έργου και χρησιμοποιήστε μια καταχώριση από τη λίστα uploads του. Η καταχώριση περιλαμβάνει την αριθμητική τιμή του id, το αρχικό όνομα αρχείου, την αποθηκευμένη επέκταση και τη σχετική τιμή του download_url. Χρησιμοποιήστε την τιμή του έργου για το uniqueid και το αναγνωριστικό αυτής της μεταφόρτωσης, όχι το αριθμητικό αναγνωριστικό της γραμμής του έργου ούτε το αναγνωριστικό μιας γραμμής τηλεφωνικού αριθμού.
Επιλύστε ένα σχετικό URL που επιστρέφεται μόνο ως προς τον ρυθμισμένο, έμπιστο διακομιστή API σας. Η λήψη απαιτεί τον ίδιο έλεγχο ταυτότητας λογαριασμού· τα μεταδεδομένα του εγγράφου δεν παρέχουν πρόσβαση χωρίς έλεγχο ταυτότητας.
Υποβάλετε το αίτημα και αποθηκεύστε την απόκριση
Ορίστε τα PROJECT_ID και DOCUMENT_ID σε τιμές από το έργο του λογαριασμού σας. Εφαρμόστε κωδικοποίηση URL στο αναγνωριστικό του έργου. Αυτό το παράδειγμα αποθηκεύει χωριστά τα byte και τις κεφαλίδες της απόκρισης, χρησιμοποιώντας σταθερό τοπικό όνομα αρχείου εξόδου αντί να εμπιστεύεται το όνομα αρχείου του συνημμένου.
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"Το αίτημα είναι GET χωρίς σώμα. Διαβάζει ένα ολόκληρο συνημμένο, χωρίς σελιδοποίηση ειδική για το συγκεκριμένο τελικό σημείο, χωρίς περιβάλλουσα δομή JSON και χωρίς τεκμηριωμένη σύμβαση λήψης εύρους byte.
Δυαδική απόκριση και κεφαλίδες
Σε περίπτωση επιτυχίας, το σώμα περιέχει τα αποθηκευμένα byte του συνημμένου μετά το βήμα αποκωδικοποίησης της παλαιότερης μορφής αποθήκευσης, όχι δεδομένα base64 ούτε αντικείμενο απόκρισης JSON. Η μέθοδος αποστέλλει κεφαλίδα Content-Disposition για συνημμένο χρησιμοποιώντας το αποθηκευμένο όνομα αρχείου, από το οποίο αφαιρούνται τα διπλά εισαγωγικά. Η κεφαλίδα δεν εγγυάται διαδρομή τοπικού αρχείου που είναι ασφαλής ή κωδικοποιημένη σύμφωνα με τα πρότυπα· επιλέξτε δικό σας όνομα αρχείου προορισμού.
| Αποθηκευμένη επέκταση | Content-Type |
|---|---|
| application/pdf | |
| png | image/png |
| jpg, jpeg | image/jpeg |
| doc | application/msword |
| Άλλες τιμές | application/octet-stream |
Η αντιστοίχιση επεκτάσεων δεν κάνει διάκριση πεζών και κεφαλαίων. Η επιλογή τύπου MIME βασίζεται στην αποθηκευμένη επέκταση, όχι σε έλεγχο του περιεχομένου, και δεν εγγυάται ότι το έγγραφο είναι έγκυρο.
Ελέγξτε το αρχείο που κατεβάσατε
- Ελέγξτε τόσο την κατάσταση HTTP όσο και τις κεφαλίδες της απόκρισης. Τα σφάλματα ελέγχου ταυτότητας ή αναζήτησης ενδέχεται να επιστρέψουν απόκριση σε μορφή JSON από το API αντί για αρχείο. Μη θεωρείτε κάθε μη κενό σώμα ή αποθηκευμένο αρχείο εξόδου επιτυχή λήψη PDF.
- Αν το σώμα περιέχει σφάλμα JSON, ελέγξτε τα
status.codeκαιstatus.msg. Διατηρήστε την έξοδο σφάλματος χωριστά από το αναμενόμενο έγγραφο. - Βεβαιωθείτε ότι το αρχείο που προκύπτει δεν είναι κενό και ανοίγει ως αρχείο του αναμενόμενου τύπου. Αν διατηρείτε το πρωτότυπο, συγκρίνετε το άθροισμα ελέγχου του με εκείνο του αντιγράφου προτού βασιστείτε στο αντίγραφο.
- Αν το αποτέλεσμα είναι κενό, μη έγκυρο ή διαφέρει από το πρωτότυπο, σταματήστε και ζητήστε από την υποστήριξη να ελέγξει το αποθηκευμένο συνημμένο. Οι επαναλαμβανόμενες λήψεις δεν διορθώνουν την αποθήκευση.
Συμβατότητα με την παλαιότερη μορφή αποθήκευσης
Η τρέχουσα διαδρομή μεταφόρτωσης του API και οι ελεγμένοι μηχανισμοί εγγραφής μεταφορτώσεων της πύλης και των παλαιότερων συστημάτων αποθηκεύουν τα byte των εγγράφων με ακολουθίες διαφυγής. Αυτή η λήψη αντιστρέφει την εφαρμογή αυτών των ακολουθιών. Οι δοκιμές εκτός σύνδεσης του πραγματικού χειριστή διατηρούν όλες τις τιμές byte και τους κυριολεκτικούς χαρακτήρες ανάστροφης καθέτου για αυτή τη μορφή αποθήκευσης.
Αυτό δεν αποτελεί εγγύηση για κάθε ιστορική εγγραφή ή εγγραφή που έχει εισαχθεί από εξωτερική πηγή. Ο χειριστής αποκωδικοποιεί πάντα το αποθηκευμένο δυαδικό αντικείμενο και δεν ανιχνεύει αν μια εγγραφή εισήχθη χωρίς τις αναμενόμενες ακολουθίες διαφυγής. Επίσης, δεν καταφεύγει σε διαδρομή αρχείου όταν μια εγγραφή δεν διαθέτει αποθηκευμένο δυαδικό αντικείμενο. Τέτοιες εγγραφές ενδέχεται να δώσουν αλλοιωμένα byte ή κενό περιεχόμενο. Ελέγξτε το αποτέλεσμα και ζητήστε από την υποστήριξη να διερευνήσει το επηρεαζόμενο συνημμένο, αντί να τροποποιήσετε ένα έγγραφο πελάτη ή να υποθέσετε ότι τα μεταδεδομένα του αποδεικνύουν τη διαθεσιμότητα του αρχείου.
Η τρέχουσα πύλη χρησιμοποιεί πρώτα αυτή τη διαδρομή του API και διαθέτει επιπλέον τοπικούς εναλλακτικούς μηχανισμούς. Μια επιτυχής λήψη από την πύλη δεν αποδεικνύει ότι κάθε παλαιότερη εγγραφή μπορεί να ληφθεί απευθείας μέσω αυτού του API.
Σφάλματα και επιπτώσεις
Ένα έργο που δεν υπάρχει, έχει διαγραφεί ή δεν ανήκει στον λογαριασμό σας επιστρέφει κωδικό API 404 με μήνυμα ότι το έργο δεν βρέθηκε. Μια μεταφόρτωση που δεν υπάρχει εντός έργου που ανήκει στον λογαριασμό σας επιστρέφει κωδικό API 404 με μήνυμα ότι το έγγραφο δεν βρέθηκε. Διαβάστε τα σώματα σφαλμάτων του API καθώς και την κατάσταση HTTP. Για μια εγγραφή που υπάρχει αλλά δεν διαθέτει αξιοποιήσιμα αποθηκευμένα byte, αυτός ο χειριστής δεν παρέχει ειδική, αξιόπιστη απόκριση μη εύρεσης.
Το ελεγμένο τελικό σημείο διαβάζει ένα συνημμένο. Δεν μεταφορτώνει, δεν τροποποιεί και δεν αφαιρεί έγγραφα, δεν υποβάλλει αιτήματα φορητότητας και δεν χρεώνει τον λογαριασμό. Τα συνημμένα φορητότητας ενδέχεται να περιέχουν στοιχεία ταυτότητας, χρέωσης ή εξουσιοδότησης: διατηρήστε τα εντός των εξουσιοδοτημένων ροών εργασίας του λογαριασμού και μην τα συμπεριλαμβάνετε σε δημόσια αρχεία καταγραφής, δεδομένα αναλύσεων ή στιγμιότυπα οθόνης της τεκμηρίωσης.