Video: Week 1 2025
Sẽ là tốt nếu mọi thứ đã làm việc chính xác theo kế hoạch khi bạn gọi REST đến AWS. Tuy nhiên, một số vấn đề có thể xảy ra dẫn đến một thông báo lỗi tương tự như một lỗi bạn thấy ở đây. Lưu ý rằng hình ảnh không hoàn chỉnh. Các giá trị chính bị chặn để duy trì khả năng sử dụng của các phím truy cập.
Thông báo lỗi có thể có các hình thức khác nhau.Vấn đề có thể đến từ nhiều nguồn khác nhau. Cách khắc phục đầu tiên là mã hoá URL chữ ký để đảm bảo rằng các ký tự đặc biệt trong chuỗi URL không gây nhầm lẫn cho AWS. Một công cụ bạn có thể sử dụng để khắc phục vấn đề này là Bộ giải mã URL / Bộ mã hóa. Để sử dụng công cụ này, chỉ cần dán chữ ký (không phải là toàn bộ URL) vào trường và nhấp vào Mã hóa. Chữ ký kết không chứa bất kỳ ký tự đặc biệt, mà sử dụng mã hóa URL để ngăn ngừa sự cố.
Ngay cả khi bạn sử dụng các đoạn mã do Amazon cung cấp, quá trình tính toán chữ ký cũng có thể sai. Xem lại hình ảnh đầu tiên, tại các phần tử
StringToSign
và
StringToSignBytes
. Những yếu tố này cho bạn biết những gì AWS mong đợi khi kiểm tra chữ ký. Tất nhiên, nó vẫn không cung cấp cho bạn một đầu mối về những gì giá trị bạn cần phải có cung cấp cho một chữ ký. May mắn thay, Amazon Signature Tester có thể cung cấp thông tin này.
Bạn tải về Amazon Signature Tester vào ổ cứng của bạn. Những gì bạn nhận được là tệp README và một trang HTML mà bạn tải vào trình duyệt của bạn. Hình ảnh dưới đây cho thấy phần dưới cùng của trang này xuất hiện như thế nào. Bạn muốn làm việc ở cuối trang vì nó chứa hai trường mà bạn cần phải cung cấp: giá trị phần tử
StringToSignBytes
và khoá bí mật của bạn.
Khi bạn nhấp vào Lấy chữ ký, bạn sẽ thấy giá trị phần tử
StringToSign
như AWS thấy, chữ ký thực và chữ ký được mã hoá URL. Bạn sử dụng chữ ký mã hoá URL với cuộc gọi của bạn tới AWS. Để xác nhận hợp lệ chữ ký này, chỉ cần thay thế giá trị hiện tại trong chuỗi URL với giá trị mới này. Nếu vấn đề nằm trong mã chữ ký của bạn, cuộc gọi sẽ hoạt động như mong đợi.
Lý do bạn muốn kiểm tra lại giá trị phần tử
StringToSign
là AWS có thể thấy nó khác với bạn. Ví dụ: lưu ý rằng trong trường hợp này, có ba ký tự dòng mới giữa
GET
và giá trị
Hết hạn
là 1490652000. Nếu mã tính toán chữ ký của bạn không tính đến yêu cầu này, chữ ký sẽ sai.Bạn có thể tìm thấy trợ giúp khắc phục sự cố thêm ở đây.