Quyền truy cập tài khoản và tài liệu
Tải xuống tệp đính kèm hiện có từ một dự án chuyển mạng giữ số thuộc sở hữu của tài khoản API của bạn. Sử dụng tài khoản API đã được kích hoạt qua HTTPS từ một địa chỉ IP được phép. Dự án phải chưa bị xóa. Mã định danh tài liệu được tra cứu trong phạm vi dự án đó; đây không phải là liên kết tải xuống công khai dùng chung trên toàn hệ thống.
Xác định tài liệu
Đọc phản hồi chi tiết dự án và sử dụng một mục trong danh sách uploads của dự án. Mục này bao gồm giá trị dạng số của id, tên tệp gốc, phần mở rộng đã lưu và địa chỉ tương đối trong download_url. Sử dụng giá trị của dự án trong uniqueid cùng với mã định danh của bản tải lên đó, không dùng mã định danh dạng số của hàng dự án hoặc mã định danh của hàng số điện thoại.
Chỉ kết hợp URL tương đối được trả về với máy chủ API đáng tin cậy mà bạn đã cấu hình để tạo URL đầy đủ. Việc tải xuống yêu cầu xác thực bằng cùng tài khoản; siêu dữ liệu của tài liệu không cấp quyền truy cập khi chưa xác thực.
Gửi yêu cầu và lưu phản hồi
Đặt PROJECT_ID và DOCUMENT_ID thành các giá trị lấy từ dự án thuộc tài khoản của bạn. Mã hóa mã định danh dự án theo chuẩn URL. Ví dụ này lưu riêng dữ liệu byte và các tiêu đề phản hồi, sử dụng tên tệp đầu ra cục bộ cố định thay vì tin cậy tên của tệp đính kèm.
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"Yêu cầu sử dụng GET và không có phần thân. Yêu cầu đọc toàn bộ một tệp đính kèm duy nhất; điểm cuối này không có cơ chế phân trang riêng, không có lớp bao JSON và không có quy ước tải xuống theo phạm vi được ghi trong tài liệu.
Phản hồi nhị phân và các tiêu đề
Khi thành công, phần thân là dữ liệu byte đã lưu của tệp đính kèm sau bước giải mã của cơ chế lưu trữ cũ, không phải base64 và cũng không phải đối tượng phản hồi JSON. Phương thức gửi tiêu đề Content-Disposition cho tệp đính kèm bằng tên tệp đã lưu sau khi loại bỏ dấu ngoặc kép. Tiêu đề này không được bảo đảm là đã mã hóa theo tiêu chuẩn hay là đường dẫn tệp cục bộ an toàn; hãy tự chọn tên tệp đích.
| Phần mở rộng đã lưu | Content-Type |
|---|---|
| application/pdf | |
| png | image/png |
| jpg, jpeg | image/jpeg |
| doc | application/msword |
| Các giá trị khác | application/octet-stream |
Việc đối chiếu phần mở rộng không phân biệt chữ hoa và chữ thường. Kiểu MIME được chọn dựa trên phần mở rộng đã lưu, không dựa trên việc kiểm tra nội dung và cũng không bảo đảm tài liệu hợp lệ.
Xác minh tệp đã tải xuống
- Kiểm tra cả trạng thái HTTP và các tiêu đề phản hồi. Lỗi xác thực hoặc tra cứu có thể trả về phản hồi dạng JSON từ API thay vì một tệp. Đừng coi mọi phần thân không rỗng hoặc tệp đầu ra đã lưu đều là kết quả tải xuống PDF thành công.
- Nếu phần thân là lỗi dạng JSON, hãy kiểm tra
status.codevàstatus.msg. Lưu riêng đầu ra lỗi với tài liệu bạn muốn nhận. - Kiểm tra để bảo đảm tệp nhận được không rỗng và mở được đúng theo loại tệp mong đợi. Nếu bạn còn giữ bản gốc, hãy so sánh giá trị tổng kiểm trước khi tin dùng bản sao.
- Nếu kết quả rỗng, không hợp lệ hoặc khác với bản gốc, hãy dừng lại và yêu cầu bộ phận hỗ trợ kiểm tra tệp đính kèm đã lưu. Tải xuống nhiều lần không khắc phục được vấn đề lưu trữ.
Khả năng tương thích với cơ chế lưu trữ cũ
Luồng tải lên qua API hiện tại cùng các thành phần ghi dữ liệu tải lên của cổng thông tin và hệ thống cũ đã được rà soát đều lưu dữ liệu byte của tài liệu sau khi xử lý thoát ký tự. Thao tác tải xuống này đảo ngược bước xử lý thoát ký tự đó. Các phép kiểm thử ngoại tuyến trên trình xử lý thực tế cho thấy mọi giá trị byte và các dấu gạch chéo ngược nguyên dạng đều được giữ nguyên với định dạng lưu trữ này.
Điều này không bảo đảm cho mọi bản ghi lịch sử hoặc bản ghi được nhập từ bên ngoài. Trình xử lý luôn giải mã khối dữ liệu nhị phân đã lưu và không phát hiện được liệu bản ghi có được nhập mà thiếu bước xử lý thoát ký tự như dự kiến hay không. Trình xử lý cũng không chuyển sang dùng đường dẫn tệp khi bản ghi không có khối dữ liệu nhị phân đã lưu. Những bản ghi như vậy có thể trả về dữ liệu byte bị thay đổi hoặc rỗng. Hãy xác minh kết quả và nhờ bộ phận hỗ trợ điều tra tệp đính kèm bị ảnh hưởng, thay vì sửa đổi tài liệu của khách hàng hoặc cho rằng siêu dữ liệu chứng minh tệp có sẵn.
Cổng thông tin hiện tại sử dụng tuyến API này trước và có thêm cơ chế xử lý dự phòng cục bộ. Việc tải xuống thành công qua cổng thông tin không chứng minh rằng mọi bản ghi cũ đều có thể được tải xuống trực tiếp qua API này.
Lỗi và tác động
Dự án không tồn tại, đã bị xóa hoặc không thuộc sở hữu của tài khoản sẽ trả về mã API 404 kèm thông báo không tìm thấy dự án. Nếu không tìm thấy bản tải lên trong một dự án thuộc sở hữu của tài khoản, hệ thống trả về mã API 404 kèm thông báo không tìm thấy tài liệu. Hãy đọc cả phần thân lỗi của API lẫn trạng thái HTTP. Đối với bản ghi tồn tại nhưng thiếu dữ liệu byte đã lưu có thể sử dụng được, trình xử lý này không có phản hồi không tìm thấy riêng biệt và đáng tin cậy.
Điểm cuối đã được rà soát đọc một tệp đính kèm. Nó không tải lên, sửa đổi hay xóa tài liệu, không gửi yêu cầu chuyển mạng giữ số và không trừ tiền trong tài khoản. Tệp đính kèm về chuyển mạng giữ số có thể chứa thông tin định danh, thanh toán hoặc ủy quyền: chỉ sử dụng chúng trong các quy trình được tài khoản cho phép và không đưa chúng vào nhật ký công khai, dữ liệu phân tích hay ảnh chụp màn hình dùng trong tài liệu hướng dẫn.