Tệp đã lưu chưa phải là một lượt tải xuống đã xác minh
Trước khi xuất bản hoặc sử dụng, hãy kiểm tra rằng lượt tải xuống qua proxy chứa tệp mong đợi, không phải trang đăng nhập hay phản hồi không đầy đủ.
Một report.xlsx giả định có kích thước 8 KB và mở ra như một trang đăng nhập. Chương trình đã lưu tệp thành công, nhưng không bao giờ lấy được bảng tính dự định. Tên tệp được chọn cục bộ; nó không phải bằng chứng về thứ đã đến.
Hãy biến việc chấp nhận thành một bước riêng trước khi xuất bản lượt tải xuống tạm thời:
- Yêu cầu truyền tải thành công và trạng thái phản hồi mong đợi. Giữ lại lỗi thay vì coi các byte đã ghi trước đó là hoàn chỉnh.
- So sánh nội dung với loại tệp mong đợi. Một trang đăng nhập hoặc lọc có thể trả về 200. Content-Type có thể sai, và tiền tố HTML trong một bảng tính là cảnh báo cần điều tra. Một tệp bắt đầu bằng dòng trạng thái HTTP lại cho thấy khung phản hồi thô.
- Xác thực toàn bộ byte đã lưu với một tổng kiểm tra hoặc chữ ký đáng tin cậy khi có sẵn. Ứng dụng chỉ nên xuất bản hoặc sử dụng tệp cuối cùng sau khi vượt qua các kiểm tra bắt buộc.
Tính một hàm băm mà không có giá trị mong đợi chỉ nhận diện những byte bạn đã nhận. Một tổng kiểm tra không ký, lấy qua cùng đường dẫn không đáng tin cậy, có thể chia sẻ điểm yếu của tệp; hãy dùng một kỳ vọng đáng tin cậy độc lập.
Cũng cẩn thận với việc so sánh kích thước. Một ứng dụng khách HTTP có thể giải mã cách mã hóa nội dung trong khi đọc, nên độ dài tệp thu được có thể khác một cách hợp lệ so với tiêu đề mô tả thông điệp đã mã hóa. Hãy so sánh kỳ vọng của nhà phát hành với biểu diễn thực sự được lưu.
Nếu một lần thử thất bại, chỉ giữ đầu ra tạm thời cho một lần tiếp tục có chủ đích hoặc bỏ nó đi. Để lại các byte không hoàn chỉnh trên đường dẫn cuối cùng buộc chương trình tiếp theo phải đoán xem chúng có dùng được không.