Βίντεο: Sicko by Michael Moore with GR subs 2024
Θα ήταν ωραίο αν όλα λειτουργούσαν ακριβώς όπως είχε προγραμματιστεί όταν κάνατε κλήση REST στο AWS. Ωστόσο, ενδέχεται να προκύψουν ορισμένα ζητήματα που έχουν ως αποτέλεσμα ένα μήνυμα σφάλματος παρόμοιο με αυτό που βλέπετε εδώ. Σημειώστε ότι η εικόνα δεν είναι πλήρης. Οι τιμές των κλειδιών αποκλείονται για να διατηρηθεί η χρηστικότητα των πλήκτρων πρόσβασης.
Τα μηνύματα σφάλματος μπορούν να λάβουν διάφορες μορφές.Το πρόβλημα μπορεί να προέρχεται από διάφορες πηγές. Η πρώτη λύση είναι να κωδικοποιήσετε τη διεύθυνση URL για να διασφαλίσετε ότι οι ειδικοί χαρακτήρες στη συμβολοσειρά διευθύνσεων URL δεν συγχέουν το AWS. Ένα εργαλείο που μπορείτε να χρησιμοποιήσετε για να ξεπεραστεί αυτό το πρόβλημα είναι ο αποκωδικοποιητής / κωδικοποιητής URL. Για να χρησιμοποιήσετε αυτό το εργαλείο, απλώς επικολλήστε την υπογραφή (όχι ολόκληρη τη διεύθυνση URL) στο πεδίο και κάντε κλικ στο Encode. Η υπογραφή που προκύπτει δεν περιέχει ειδικούς χαρακτήρες, αλλά χρησιμοποιεί κωδικοποίηση URL για την αποφυγή προβλημάτων.
Ακόμη και αν χρησιμοποιείτε τα αποσπάσματα κώδικα που παρέχονται από το Amazon, η διαδικασία υπολογισμού υπογραφών μπορεί επίσης να πάει στραβά. Κοιτάξτε ξανά την πρώτη εικόνα, στα στοιχεία
StringToSign
και
StringToSignBytes
. Αυτά τα στοιχεία σας λένε τι περίμενε η AWS όταν έλεγξε την υπογραφή. Φυσικά, δεν σας δίνει ακόμα μια ένδειξη ως προς την αξία που θα έπρεπε να έχετε παράσχει για μια υπογραφή. Ευτυχώς, ο ελεγκτής υπογραφής Amazon μπορεί να παρέχει αυτές τις πληροφορίες.
Μπορείτε να κατεβάσετε τον ελεγκτή υπογραφής Amazon στο σκληρό σας δίσκο. Αυτό που παίρνετε είναι ένα αρχείο README και μια σελίδα HTML που φορτώνετε στο πρόγραμμα περιήγησής σας. Η παρακάτω εικόνα δείχνει πώς εμφανίζεται το κάτω μέρος αυτής της σελίδας. Θέλετε να εργαστείτε στο κάτω μέρος της σελίδας επειδή περιέχει δύο πεδία που πρέπει να τα προμηθευτείτε: την τιμή στοιχείου
StringToSignBytes
και το μυστικό κλειδί σας.
Όταν κάνετε κλικ στην επιλογή Λήψη υπογραφής, εμφανίζεται η τιμή στοιχείου
StringToSign
όπως το βλέπει το AWS, η πραγματική υπογραφή και η υπογραφή με κωδικό URL. Χρησιμοποιείτε την κωδικοποιημένη υπογραφή URL με την κλήση σας στο AWS. Για να επικυρώσετε αυτήν την υπογραφή, αντικαταστήστε απλώς την τρέχουσα τιμή στη συμβολοσειρά URL με αυτή τη νέα τιμή. Εάν το πρόβλημα είναι στον κωδικό υπογραφής σας, η κλήση πρέπει να λειτουργεί όπως αναμένεται.
Ο λόγος για τον οποίο θέλετε να ελέγξετε ξανά την τιμή στοιχείου
StringToSign
είναι ότι το AWS μπορεί να το δει διαφορετικά από εσάς. Παραδείγματος χάριν, παρατηρήστε ότι στην περίπτωση αυτή υπάρχουν τρεις χαρακτήρες νέας γραμμής μεταξύ
GET
και η τιμή
Expires
1490652000. Εάν ο κωδικός υπολογισμού υπογραφής δεν λαμβάνει υπόψη αυτή την απαίτηση, η η υπογραφή θα είναι λάθος.Μπορείτε να βρείτε επιπλέον βοηθήματα αντιμετώπισης προβλημάτων εδώ.