Достъп до акаунта и документа
Изтеглете съществуващ прикачен файл от проект за пренос на номера, който принадлежи на вашия API акаунт. Използвайте активиран API акаунт през HTTPS от разрешен IP адрес. Проектът не трябва да е изтрит. Идентификаторът на документа се търси в рамките на този проект; той не е глобална публична връзка за изтегляне.
Определете документа
Прочетете отговора с подробности за проекта и използвайте запис от неговия списък uploads. Записът включва числовия id, оригиналното име на файла, съхраненото разширение и относителния download_url. Използвайте проектния uniqueid и идентификатора на този качен файл, а не числовия идентификатор на реда на проекта или идентификатор на ред за телефонен номер.
Разрешавайте върнатия относителен URL само спрямо конфигурирания API хост, на който имате доверие. Изтеглянето изисква същото удостоверяване на акаунта; метаданните на документа не предоставят достъп без удостоверяване.
Изпратете заявката и запазете отговора
Задайте PROJECT_ID и DOCUMENT_ID със стойности от проекта на вашия акаунт. Приложете URL кодиране към идентификатора на проекта. Този пример запазва байтовете и заглавките на отговора поотделно, като използва предварително определено локално име на изходния файл, вместо да се доверява на името на прикачения файл.
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 или документиран договор за изтегляне на диапазони от байтове.
Двоичен отговор и заглавки
При успех тялото съдържа съхранените байтове на прикачения файл след стъпката за декодиране на стария формат на съхранение, а не 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 и прегледаните компоненти за запис при качване през портала и старите системи съхраняват байтовете на документите с екраниране. Това изтегляне отменя екранирането. Офлайн тестовете на действителния обработчик показват, че за този формат на съхранение се запазват всички стойности на байтовете и буквалните обратни наклонени черти.
Това не е гаранция за всеки исторически запис или запис, импортиран отвън. Обработчикът винаги декодира съхранения двоичен обект и не разпознава дали записът е импортиран без очакваното екраниране. Той също така не използва път до файл като резервен вариант, когато записът няма съхранен двоичен обект. Такива записи могат да дадат променени байтове или празен резултат. Проверете резултата и помолете поддръжката да проучи засегнатия прикачен файл, вместо да променяте документ на клиент или да приемате, че метаданните му доказват наличността на файла.
Текущият портал първо използва този API маршрут и разполага с допълнителна локална обработка за резервни варианти. Успешното изтегляне през портала не доказва, че всеки стар запис може да бъде изтеглен директно през този API.
Грешки и последици
За липсващ, изтрит или непринадлежащ на акаунта проект се връща API код 404 със съобщение, че проектът не е намерен. За липсващ качен файл в проект, принадлежащ на акаунта, се връща API код 404 със съобщение, че документът не е намерен. Четете телата на отговорите за грешки от API, както и HTTP статуса. За запис, който съществува, но няма използваеми съхранени байтове, този обработчик няма специален надежден отговор, че документът не е намерен.
Прегледаната крайна точка прочита един прикачен файл. Тя не качва, не променя и не премахва документ, не подава заявка за пренос на номера и не дебитира акаунта. Прикачените файлове за пренос на номера може да съдържат данни за самоличност, фактуриране или упълномощаване: използвайте ги само в рамките на разрешените работни процеси на акаунта и не ги включвайте в публични журнали, аналитични данни или екранни снимки за документацията.